my 3 cents:

1) static type-inferencing analyzers/compilers wouldn't help much in a
language where you can do something like monkey patching and modify
behaviour of classes at runtime:  there's not many things remaining
static (for too long) in a ruby program
2) static type-inferencing analyzers/compilers could work if they were
whole-program compilers, but for a typical ruby program this could
mean a few hours or days of compilation time and memory swapping
3) static type-inferencing analyzers/compilers could work best for
ruby if they were JITs, but still wouldn't get you anywhere near the
performance of a static language by nature.