Nunca trabalhei com JavaFX, mas talvez a vantagem dele sobre o Flex seja o fato de usar apenas uma linguagem para fazer tudo. Com o Flex, você vai precisar trabalhar com o ActionScript do lado do cliente e ainda escolher uma outra linguagem (PHP,Java, ASP) para trabalhar do lado do servidor.
Uma correção, para rodar em desktop existe o AIR, q é outro plugin. Uma aplicação realizada em Flex com pequenos cuidados rodará em desktop e vice-versa.