The million dollar question--will your son be fully potty trained and able to take himself to the potty unassisted/unasked? We took our toddler on a cruise for her second birthday, and she loved it. She really enjoyed being in Small World Nursery. We showed her the Oceaneer's Club/Oceaneer's Lab, and she was so excited--and when we explained to her that she had to be potty trained to go there, she was instantly eager to start potty training.They are very firm about the potty training rule. No pull-ups, and the kid has to be able to take themselves. If he isn't fully potty trained, then you'll have to tell your kid no about going in there aside from open house times.
In addition, no kids in swim diapers are allowed in the pools (although the kid's splash area is wonderful).
Another challenge is knowing whether your child is okay with 2.5-hour meals (only one of our dinner meals on ship were less than 2 hours) and whether your kid is okay with missing bedtime most nights (if you want to do the shows or the pirate party).
The final challenge is that you will be extremely limited in what shore excursions you'll be able/want to do with your kid. Even some that don't have age restrictions may be a little too much of a day for a toddler.
That being said, if you are okay with all of those challenges, a cruise with a toddler can be amazingly fun and a very relaxing trip.
We've also taken our toddler for a Disney trip, and had a blast doing that. The big thing for us was to stay at a resort with a zero-entry pool (so she could wade in the ankle-deep water), limit the number of sit-down meals/bring an iPad with movies for meals that went long, and take lots of afternoon naps.
I don't think you can go wrong with either--but it really depends what you want to do on a trip.