You make excellent points in your blog.
There are a few other elements to this that deserve attention:
1. Shore Excursions Offices on many ships are very short-staffed. They do not have the manpower or resources to sell multiple shore tour tickets to thousands of passengers after the cruise begins. Using whatever tactics are at hand (fear for example) to force passengers to book tours online before the cruise begins allows the cruise line to keep it's overhead down and increase profits at the same time.
2. Liability insurance is a major element of cruise line shore tour pricing. Since so many passengers bring lawsuits against cruise lines after having some sort of problem on a shore excursion, the cruise lines have been forced to take out massive liability insurance for passengers on tour. Spreading those huge insurance premiums over a greater number of passengers on tour helps to keep costs down.
3. Tour operators are not required nor inclined to carry the same massive liability insurance when they sell tours independently of the ship. As a result, their prices on the pier are often far lower for the same tour. The cruise lines are motivated to "lock you in" to ship-based tours to prevent what they see as unfair competition.
4. Many North American cruisers are notoriously poor travelers - especially when they find themselves outside their own country. (Most Americans speak 2 languages; English and English Louder) Despite the fact that independent tours are usually more interesting, more fun, and substantially less costly than ship-based tours, far too many cruisers who do it on their own encounter challenges that delay the ship, keep the Ship's Agent too busy getting them out of trouble, and generally cost the cruise line quite a bit of money to get it all sorted out.
5. In the past few years, many countries - especially in Europe and Asia - are cracking down on ships that need to leave passengers behind. If we cannot produce travel documents for passengers who do not make it back to the ship on time, local officials are very reluctant to allow the ship to leave port.
Last summer in the Med, we missed several ports - and were late in arriving at many more - because independent tour passengers got stuck in traffic, had auto accidents, got lost, forgot what time the ship was departing, etc, etc, etc. Local officals insisted that we thoroughly search the cabins of missing passengers to try to locate passports before we could depart.
Searching one or two cabins is not too bad. Searching 10 or more cabins can take hours.
Missing a port - or arriving late - results in huge financial losses for the company, with refunded shore tours for everybody else, OBC for missed ports, extra fuel burned to try to make up lost time, etc.
It is advantageous for the cruise lines to try to avoid all these hassles and costs by using whatever tactics they can to coerce passengers into using the ship's tours. This allows us far better control on passengers returning to the ship on time - or at least knowing where they are if they are late.