Вы действительно не сможете изменить это очень сильно. Это результат использования интерпретируемого языка и мощного / гибкого фреймворка для веб-разработки.
Когда вы запускаете команду, интерпретатор ruby должен быть загружен вместе со средой rails и вашим приложением, прежде чем он сможет выполнить откат. Это похоже на запуск сервера Rails и затем откат.
Это может быть болезненно при сборке, но есть и преимущества. Ваши миграции могут содержать логику, использующую классы из вашего приложения, чтобы принимать правильные решения о том, как выполнить миграции. Долгосрочная ремонтопригодность здесь намного лучше.
Кроме того, модели БД обычно не меняются часто, мощность важнее суперскорости.