Na página comenta a diferença de programação imperativa da declarativa https://cursos.alura.com.br/course/flutter-fundamentos/task/61442
O exemplo apresentado está equivocado. Ter um arquivo separado para interface não torna a imperativo. Pode ser observado como exemplo o java swing, que embora escreva tudo no código fonte é programação imperativa. Modo imperativo e declarativo, como o link do flutter mostra, está relacionado com a forma que pedimos para as coisas acontecerem. No modo imperativo pedimos para uma instância se modificar chamando um método, enquanto no declarativo apenas chamamos o construtor que retorna uma instância imutável.