I'm an Ops guy who just happens to write a lot of code, rather than a coder who happens to handle Ops, and I can testify that Rails is not fun to manage, from an Ops perspective.
Setting up a tightly version-controlled, centralized deployment for a full Rails app stack is more difficult than doing the same with J2EE, but this is partially due to the immaturity of the platform -- Ruby, and Rails, just haven't been in the mainstream for anywhere near as long as Java has.
By coincidence, I was up until 2 last night getting a Passenger install to work. I'm deploying multiple apps to this new server I'm setting up and didn't want to install gems globally (Rails' version of DLL hell) and had all sorts of fun with freezing Rails and gems, and getting Capistrano to work.
And, yes, Passenger made this whole process easier than it was when I did this with Mongrels. It's still not simple and easy.
I think it's a silly comparison you're trying to make. "DLL Hell" is "Hell" because there's a system-level depot for binaries that is hard to override. If you really need multiple global gem depots, just run multiple builds of the same Ruby.
The first thing every team I've worked on has ever done with Ruby (and Python and Tcl before that) is roll a project-specific Ruby build, so that nobody is working off the polluted system Ruby. It was even worse with Python, which for a couple years was a whole major version back from mainstream Python.
I'm not saying there isn't a real problem here; if you're hosting apps for 3 different teams, you do have to do a little dance to deploy seamlessly for all 3 of them with all their deps.
But most teams are never going to run into this problem, and I don't know of a really elegant solution for it.
To my ears, you're describing "DLL hell", but saying that it isn't really DLL hell, because you can work around it, and because the problems are just as bad in some other languages.
Personally, I think Rails is pretty hard to deploy. There are just too many global inter-dependencies that need to be managed.
Setting up a tightly version-controlled, centralized deployment for a full Rails app stack is more difficult than doing the same with J2EE, but this is partially due to the immaturity of the platform -- Ruby, and Rails, just haven't been in the mainstream for anywhere near as long as Java has.