Paul Motter posted this article last month, but just re-posted it. Apparently Brazil is playing a simple game of "payback" against U.S. citizens regarding visas. You need one to even board the ship on embarkation day if the ship is going to stop at any Brazilian port. The problem is Brazil is making them about as hard to get as a ride to the space station.
So, I gather they don't want the cruise industry's business. It won't do a bit of good for a ship to dock in a port if there are no passengers, crew or staff on board. What is Brazil thinking?