The number one, and most important reason to go on a cruise is the cruise itself. The ports are only secondary to the fun and relaxation you will have on board.
Going to the Carribean is like one giant party. They have a whole industry, just dedicated to finding ways to take the cruise ships dollars. How many different ways can you pay to go snorkling?
Canada is only a part time destination, so what you have are things to do, but not dedicated to the cruise industry. The ports go about their daily lives, and when a ship comes in, they roll out the welcome mat, and the next day, it is back to regular city life for them.