The biggest difference between JavaFX and Groovy is that Groovy actually works.
There are a lot of similarities. Groovy, though, is more of a general purpose language like
Java. JavaFX is specific to UIs.
If you really want to compare the two,
you should consider playing around with the
SwingBuilder in Groovy.
One thing I really don't like about JavaFX is that there are a lot of non-Java-y syntax things that take some getting used to. You can, however, start writing Groovy classes right away even if you only know Java syntax. That's a huge win for Groovy.
A year ago I remember reading about people asking Chris Oliver why JavaFX wasn't just built on top of Groovy. The basic answer was that when JavaFX was started (originally called F3 I think), Groovy didn't allow some of the primary features he wanted... dynamic binding being the biggie.