I think that Carnival benefits by getting more people to cruise on their ship who would not cruise otherwise. It also is good PR for their company. It makes them sound caring. It will be interesting to see if they can continue to fill the ship every other week.
A couple thoughts...
- passengers aren't volunteering on the Carnival ship itself. Aside from publicity for appearing to be a more socially conscious organization, it does not appear that Carnival directly benefits from the volunteerism although good will diplomacy goes a long way in negotiating port charges and other country-specific fees
- this is a smaller ship so the cost per passenger is more concentrated and economies of scale don't apply
- faith-based organizations usually have well-established missionary networks and bases of operation in the host countries. I'm not sure spending money on cruise fare goes very well with the desire to spend most of the fundraising proceeds on the recipients
This is a good option for relatively affluent people who are not connected to any specific mission or charity to add in some volunteering as an excursion on an otherwise traditional cruise. This goes along with the "theme" cruise ideation that many of the lines have adopted.