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.
first, from what i've seen now that javafx had its FCS (last week i think), there is still a lot to be done with it. i think eventually it'll compete well with flex and silverlight. how long it'll take to be competitive, maybe someone else can say.