Olá, Alvaro!
A diferença entre var e dynamic é que o var define o tipo da variável com base no valor que ela recebe na inicialização, enquanto o dynamic permite que a variável mude de tipo durante a execução do programa.
No seu código de exemplo, você declarou a variável meuNumero como var e a inicializou com o valor 7.1. Nesse caso, o Dart inferiu que o tipo da variável é double. Por isso, ao imprimir meuNumero.runtimeType, você obteve o valor double.
Se você tivesse declarado a variável como dynamic, como no exemplo a seguir:
dynamic meuNumero;
print(meuNumero.runtimeType);
meuNumero = 7.1;
print(meuNumero.runtimeType);
meuNumero = "Alvaro";
print(meuNumero.runtimeType);
meuNumero = true;
print(meuNumero.runtimeType);
Você teria obtido a mesma saída, pois o dynamic permite que a variável mude de tipo. No entanto, é importante ressaltar que o uso excessivo de dynamic pode tornar seu código mais difícil de entender e pode levar a erros em tempo de execução.
Espero ter esclarecido sua dúvida! Se tiver mais alguma pergunta, é só me dizer. Bons estudos!