You place a fine if the ship arrives too soon at the destination. There are still ways to cheat the system, e.g. make an undocumented stop, but compliance should be the easiest way. Of course it would also increase the cost of shipping as you either need more ships to reach the same tonnes of goods per year and/or pay the captains more since they are at sea for longer.
Enforcement at destination countries is far too simplistic to assume. There are too many countries who just won't care, for example Somalia, Haiti, many in S.E. Asia, and many others where a bribe will suffice.
Then there are a lot of question marks regarding the jurisdiction of a destination country when the ship is flagged elsewhere. How or who enforces the penalty on this ship? And if such a penalty is applied, the ship owners simply change name and move to a different country's flag.
This is exactly the same problem with illegal fishing. Perpetrators are getting away with it because effective policing is not happening.
I agree. For example, it would also allow ships to make up time lost to rough weather by ignoring the speed limits later in the passage (which is probably not good for the environment).
I also don't know that a blanket speed limit makes sense for all ships. The longer the waterline length of a ship (for a given weight) the easier it is for it to make a given speed.
I feel like a better metric could be used, like fining vessels for trips which consume more than X tonnes of fuel for a ton of cargo where X is designed to be met only by building highly efficient ships or by existing ships operating at reduced speed.
The countries that care about regulations are typically also those who import and export most stuff. Once you're in a port you're subject to the local laws, so imposing a fine should be no legal hassle.