No excuses for Carnival. I'd be pretty pissed at them punting a stop without a refund.
In defense of Progreso, I was there in 2001, and I agree that the town itself is nothing to write home about. But if you are adventurous, the very interesting Mayan site
Dzibilchaltun is about a 45 min drive from the port, and you're about an hour or so drive to
Merida, the capital of Yucatan.
Both places can be visited over the course of a cruise day stop and both are pretty cool. We hired a driver in Progreso, and he carted us to both places and helped us with translation/bargaining in Merida. $90 for the day (in 2001) well spent.