I agree that they need to raise revenue. But, customer satisfaction is also of prime importance;, for both repeat business and referrals to new cruisers.
Small touches, like free popcorn, go a long way for that. A charge for this, a charge for that, starts to annoy people, decreasing overall satisfaction. Charge for the bigger stuff (excursions, photos, alcohol, etc.) but keep tons of the smaller things included.
The same person who pays $150k for a car will grumble the dealership charged them fifty cents for an air freshener.
Raise prices by $5 per passenger and give away $2 per passenger in free stuff will give more revenue and higher guest satisfaction than the $5 lower fare but charging $1 for the stuff.