I tried using Groovy for a minor project, and it was generally unpleasant. Perhaps it was its "in-between" nature: some things didn't work enough like Java, and some things didn't seem dynamic enough.
One of the biggest issues was the seeming flakiness of the Eclipse Groovy plugin. At worst, the Groovy editor would crash without allowing you to save changes.
Question mark operator for null checking (e.g.
foo?.bar returns null if foo is null)
Auto-encapsulation: declare fields public and getter/setter is generated, and can be manually overwritten later. Getters and setters can be accessed as if they were fields (Jython also does this bit; also, (J|P)ython has properties for adding getter/setter after-the-fact).
Automatic constructor from fields
Debugging (at least in Eclipse) works seamlessly between Groovy and Java (unlike Jython/JRuby; I haven't tested Scala)