Я проделал довольно обширную разработку в Ruby и Groovy (а также в небольшом Jython с использованием Grinder в качестве инструмента для нагрузочного тестирования).
Из 3-х я больше всего предпочитаю Groovy. Мне больше нравится синтаксис замыкания, и я думаю, что он имеет самую тесную интеграцию в том, как он работает с другими классами Java в JVM. Прошло немного времени с тех пор, как я в последний раз использовал JRuby, но импорт классов Java и работа с загрузчиком классов в JRuby не казались мне такими чистыми.
Тот факт, что Groovy также является по сути надмножеством Java, означает, что огромное количество программистов на Java получит более быстрое время освоения Groovy вместо Ruby / JRuby. Они могут начать программировать его, как на Java, и постепенно начинать вставлять в него идоматический шпунт.
Что касается того, что вы спрашиваете, я думаю, что еще одно преимущество Groovy состоит в том, что язык, на который вы переходите, когда вы хотите оптимизировать что-то, - это почти тот же синтаксис, что и Java. Если вы работаете в мире Ruby или Python, вам придется перейти либо на C, который представляет собой большой сдвиг, либо на Java, который также сильно отличается от этих языков. Программирование на Groovy также помогает поддерживать ваши навыки Java на некотором уровне.
Если у вас есть определенный доступ к инфраструктуре Ruby или Python или команда, которая знакома с такими средами, я мог бы выбрать один из этих других языков.
Действительно, все 3 из них являются очень хорошими языками, и то, что вы выбираете, должно больше зависеть от проблемы, которую вы пытаетесь решить, и ресурсов, которые у вас есть. Как только вы овладеете одним динамическим языком, вам будет легче набрать вторую или третью.