Well, that's a fair question, Scott, and I'm not in a position to "compare and contrast" successful Java and Scala projects. If you were seriously considering whether to use Scala instead of Java, then it would be a good idea to look at the experiences of people who've gone the same route, perhaps starting with the examples given above.
I don't know enough about Ruby to judge whether any project would be better implemented in Java or Ruby. But it's always worth remembering
Sturgeon's law i.e. 90% of everything is crap. Given the challenges you have pointed out in implementing good OO design, there's a fair chance that some of the poorly implemented Ruby projects you mention would have been just as bad or even worse in Java. And given the cost of Java development, it may be that people actually got a working (if flawed) Ruby system for a reasonable budget, instead of spending vastly more money and still getting a useless Java system. I know I've seen some projects totally crippled by the cost and incidental complexity of using "enterprise" Java, producing brand new legacy systems that are unmaintainable, barely functional and cost a fortune, and I believe some of these projects might have been far more successful if they'd chosen a different approach, a different platform or a different language.
As an aside, it has been argued that OO design patterns are not so much evidence of good OO design, but are actually a symptom of failures in the OO approach or of missing features in OO languages, and that many such patterns become redundant if you use a dynamic functional language instead. I'm not really in a position to judge this, but it's certainly true that some things can be much harder to implement in an idiomatic OO style than in functional style.
In any case, the fact is that Java is hard and full of cruft, and the language is showing its age and carrying a lot of historical baggage that is no longer especially helpful. There is no sense in taking a macho stand and insisting that people should program better in Java, because the same can be argued about any language: is Java just a refuge for people who couldn't hack it as C programmers? If there are alternatives available that might allow people to implement their systems more easily, quickly and cheaply without sacrificing quality, then what's wrong with exploring those alternatives? For example, there is no reason to waste time and money trying to get hand-crafted threads working if you can implement your concurrency more easily and robustly using Akka. Scala or some other language may indeed be a better option in some cases, and not in others. The point is not to be hamstrung by past decisions - and choosing an alternative JVM language still leaves you with room to change track later on if you need to.
Of course, if Java represented the pinnacle of programming language perfection, then there might indeed be no reason to change to some other language. But programming languages are tools that are changing all the time, and it makes sense to pick the right tool for the job today, rather than sticking with an obsolete or unsuitable tool, simply because "a flint hand-axe was good enough for my grandpappy". After all, I remember plenty of C/C++ programmers expressing similar doubts about that new-fangled Java language back in the day!