The cruise lines set themselves up for this, because while they charge on a per cabin fare, they are *marketed* as a per person rate. Like a hotel room, which for US travelers are almost universally sold on a per room basis, cruise revenue is also in actually per cabin. But because they're marketed per person, it makes solos feel horribly discriminated against.
Yes, solos don't eat as much as a couple, but food costs are incredibly low for the cruise lines and per person a small portion of the overall fare. Fixed costs and crew (even at their wages) are the majority.
I've gone around and around with cruise lines, as I know most of my solo clients spend more per diem on average than my couples do per person, as they tend to choose cruise line excursions over independent more frequently, spend more time in bars and casinos for example, and thus on a per person basis spend more. The cruise lines are slowly coming around, but it's a struggle. 4 years ago NCL wouldn't even allow agents to easily find reduced single supplements in their pricing grids - it took almost 2 years of work to get that changed. Now, on one ship, they have more solo occupancy cabins than any other line in the business.
Change is happening, but it's slow and a lot of long-held beliefs and pricing models have to change.