Sementics, maybe, but you can be sure they think about it
It is semantics but the cruise lines set the frame themselves with their advertising. If the ads said "$x per cabin, maximum occupancy: 2" (as hotel ads do) then a single who wanted to be charged per person would be asking for a discount but since the ads say "$x per person" a single is in fact being charged double. Since people expect to pay the rate they see advertised not some multiple (or fraction) thereof many singles (rightly or wrongly) often feel ripped when paying a single supplement on a cruise but not when paying full-price for a hotel room.