We have cruised 15 times (9 times in the Bahamas/Caribbean and 6 times in Europe) and never missed a port unexpected during a cruise.
We had a cruise booked in summer 2011 that was scheduled to go to Tunis, Tunisia. In February, before our final payment/activity booking date, the port was changed to Palermo in Sicily, Italy due to unrest in Tunisia. We ended up cancelling that cruise for an unrelated reason; we had been disappointed to miss visiting Africa, but liked the shore excursions available in Palermo.
We had a Bahamas cruise booked in October 2016 that was cancelled due to Hurricane Matthew, which caused closures at Port Canaveral.
We took a Northern European cruise in September 2023. We booked at the end of March; a few weeks earlier (well before final payment/activity booking), the itinerary had been changed with Amsterdam, Netherlands replaced with Zeebrugge, Belgium (near Bruges), and Sadnes, Norway replaced with Mekjarvek, Norway (near Stavenger). Zeebrugge was fine. In Mekjarvek, there was the most trouble with port excursions I have seen on a
Disney cruise. Several were cancelled that morning, and several others started very late. We heard that the previous cruise that stopped in Mekjarvek (2 weeks before ours, also rescheduled from Sadnes) had similar issues with local excursion staff not showing up.
All 9 of our stops at Castaway Cay, mostly in January and February, have occurred as scheduled, though a few times early excursions were cancelled due to rain or cold.