Something interesting: Even in version 2.7 with JIT enabled, Ruby still can't do constant folding (turning 2*3 into 6 so it doesn't run every time). Apparently the reason is that because almost anything can be redefined, even for something like 2*3 it has to look up the right definition each time. So a lot slower than you'd like.
(Also ruby 1.8's optimization is much worse than 2.7, even without JIT.)
For Essentials, there is at least one thing I'm aware of that's kinda-sorta reeaally bad: tiles are sometimes rendered as separate sprites, individually. ~300 tiles are on screen at a time, so even if only a fraction are rendered that way, it can be bad.
(I think it happens in the Dragon's Den, for example?)
On the other hand, it's amazing how well it reproduces the 3rd-gen Pokemon experience.