I always recommend booking it advance if you can because they DO sell out commonly.
Whether through the cruise line or directly with the site - do it in advance.
However, you may find the ship has some availability even if the site says it is sold out - worth a try.
I am the editor, but I also speculate, ask questions and play devil's advocate. I reserve the right to change my mind.