It's easy to setup, it handles all the heavy lifting behind the scenes so you don't have to worry about things like memory management or keeping track of dependencies. The fact that it is open source makes it very flexible, which can be both good and bad. Sometimes I'd find myself working with code from other people who were using Passenger, and I would need to figure out how they had configured their app, and then try to do the same thing.
It was a bit frustrating at times, but overall it was