Another con is the complex logistics of getting to the cruise ship if you don't live close by. This could include a flight, an overnight hotel, both to and from. To overcome this to some extent, a travel agent can really help.
I have never cruised. I greatly fear the idea of "Hidden fees," You know, expenses charged after it is all over, costs and fees that I did not expect and then it is too late.
Some cruise lines have better food than others. While a lot of things could be included many cruise lines charge for things that used to be included. Some entertainment is good. Other things fall flat. The cruise ships are so large today that many places are not accepting many cruise ships. Don't use internet while on vacation. Bigger doesn't always mean better. Each cruise line is different and they are all not good for everyone.
Loved my two cruises; one other con worth mentioning is the staterooms are much smaller than hotel rooms unless you pay a lot for a suite. Your standard hotel or enclusive resort room has two queen size beds; standard cruise ship has two twin size beds close together.