I thought this was the default behavior, but I have noticed that changed Groovy files don't seem to be auto recompiled.
I'm using Grails 2.3.0
The questions is answered very clearly at Grails 2.3.0 Auto-reloading not working.
Simply use grails -reloading run-app
but follow the link get info how to enable forking as well.