The way all cell systems work is that the carriers share towers and services. You may be a Verizon customer but may be on a Sprint owned tower. You have no idea but Sprint calculates the fees and passes them on to Verizon. Providers have worked out the charges between them and when you get your bill it is transparent.
The charges worked out between the cell providers and MTN Cellular@sea (the service all ships use) is $2.95 a minute and $x for data and text. I can't remember the cost per text or megabyte of data off the top of my head.
The reason it is considered "roaming" is because the cost of having cell service at sea is much more expensive. The ship sends the information up to the MTM satellite and then it's beamed back to the appropriate cell carrier and dispersed from their network. The satellite time is expensive and not in control of any of the cell providers.
And yes, there are still places in the continental U.S. where you are roaming with Verizon. The U.P. of Michigan, parts of North Dakota, Colorado, Nevada, Wyoming to name a few. Some other carriers you can be "roaming" in major metropolitan areas.
The cruise lines don't make much off each cell call but they make it up in volume.
I really have no idea what they make but they have to make a profit or they wouldn't offer the service.