That is one thing DCL does well. We're cruising on another line (gasp, I know!) soon and when we booked a shore excursion months ago we had to pay for it immediately to confirm it. pffft. We have a hefty onboard credit (which is why we booked with this other line) but can't use that credit for the shore excursion.
Well, I'm not sure if one method is better -- they're just different.
In my experience, on DCL I've had to stay up until midnight to book activities, and after a few minutes some were already full!?! Sure, one doesn't have to pay for them up front, but it was really frustrating when activities were full. I think some guests book activities they're mildly interested in, then decide later. That's easy to do if one doesn't have to pay up front and there's no downside to doing so.
On most other cruise lines I've sailed, one can book an activity at any time (often often final payment). There, I've
always been able to get exactly what I wanted, though I had to pay at the time of booking. This method makes one think seriously about booking activities.
IMO, both methods have their advantages and disadvantages. One method: wait until midnight, book everything (
if available), decide later, pay later. Another method: book anytime after final payment, get exactly what you want, but pay upfront.
Woody