We have learned to book shore excursions as soon as we know what we would like to do at each port. Typically, they are not booked through the ship. Either way, they can be cancelled. True, the excursions through the ship will need to be paid for upfront, but can also be cancelled.
And often, independent excursions will need payment up front, but not always.
A poster on another forum is upset because their cruise is 4 months away and "everything" is already booked through the ship.