Internet on any ship is expensive as soon as you're out in maritime area - where data transfer is done via satellite services. So it is not necessarily because a captive market, where the cruise liners can fleece you. They pay crazy prices to the telecom/ISPs.
So if you're getting free internet out at seas, it is really at the cost of the ones actually paying the bills - or in this case, the cruise liner.