You can buy on ship , however my last trip on Discovery I found out you had to sign up for a time slot on Sea days or there were no beds ...I paid before I got on ship . Tried to get my money back but that didn,t happen.
I think they can sell more passes doing this , people were overstaying their time slot and that was causing problems .
On that trip I went around 7.30pm and always found a spot ,that does not work for everyone though.
Having always enjoyed the area on previous Royal Class Sailings I have never purchased this again .Maybe it is different on other ships.