Основная причина в том, что Grails был разработан для Groovy 1.1, который не поддерживает аннотации. Я думаю, что одна из следующих версий будет поддерживать аннотации, но, как сказал Alamar, аннотации не могут быть изменены во время выполнения. Таким образом, текущий подход является более гибким.