my understanding is if you book an excursion before sailing you have until (I think) 2 days prior to the cruise to cancel. After that you are charged for the excursion wether or not you go on it. If you book on the ship I think they charge your stateroom right then, and you don't get a refund if you don't go. However if for some reason the cruise ship doesn't make the port or they cancel the excursion, I'm pretty sure you get a refund in that case.
On our first cruise there wasn't anything we felt was a must do. So we waited until we were on board and decided what we wanted to do to book. I felt if we didn't get anything then we would be fine.
For our next cruise there are a couple of things we absolutely want to do so we will book them ahead of time. There are also a few we are thinking of doing. I may go ahead and book those and decide wether to keep it or cancel it prior to the cruise.