Porque, como en TODOS los demás DBMS, los campos de un registro que se inserta o se actualiza en un trigger NO se puede invcar solamente por su nombre. Debes usar las peudovariables NEW y OLD, como referencia del registro que estás modificando (cada uno de os que el trigger procesa).
Me parece que necesitas leer de nuevo el manual de referencia, porque este tema está claramente explicado en él.
La cosa es así: Cada vez que insertas un registro, y en la tabla hay un trigger para ese evento, el registro queda en un estado de proceso y asociado a una pseudovariable denominada NEW. En el caso de los UPDATE y DELETE, el registro existente es el OLD.
Entonces, mientras estás dentro del trigger obligatoriamente debes referirte a él con ese nombre, de lo contrario se generará un error de ejecución porque MySQL intenta encontrar una columna o tabla con el nombre de campo que quieres, y no existe.
Vamos de vuelta entonces:
Código MySQL:
Ver originalDELIMITER $$
SET NEW.District
='Unknown';
DELIMITER ;