Great questions. Here's my attempt at some answers:
1. Unlike most other Java web frameworks, Grails addresses the full application. If you write an app in Struts2, Stripes, JSF, etc. you still need something else to handle the "back end"; Spring/Hibernate, EJB, etc. Grails uses Spring and Hibernate but builds it in so that all the layers of the application are handled cohesively. Another, and probably more important, difference is convention over configuration. (Note "over" not "instead of") Many basic decisions are made by following simple and sensible conventions. No XML configuration files required. You can configure to hearts content if you want/need to, but in many/most cases you don't need to. This combined with features like GORM dynamic persistence methods (get(), save(), findAllByPropertyName(propertyVal), etc.), custom tags that are so easy they should be illegal, convention based Codecs, URL mapping, and more, make Grails a very productive and enjoyable way to build web applications.
2. I haven't used Rails or Django, but from what I've heard there are several similarities in philosophy (Convention over configuration, dynamic language, persistence).
3. There is another thread on this forum that addresses this question pretty thoroughly:
https://coderanch.com/t/470335/Groovy/Grails-weak-points
4. If you have some experience with Java, Groovy will be easy to pick up. If you also have experience with Ruby and Python, then it'll be even easier. Many of the things you like from Ruby or Python and wished were in Java, are likely in Groovy. Groovy basically brings things like closures, metaprogramming and dynamic typing to Java.
In short, if you are planning on doing web development on the JVM, you owe it to yourself to at least take a look at Grails.
Have fun,
Dave