I tried to book online but from months out it was saying sold out. I kept checking as it got close to the cruise, as sometimes people change their minds but no luck - for princesses or Anna/Elsa. You should be able to book onboard when you get on but it's going to depend on a few things: how full the ship is, what excursions you have booked, what you have planned for port days.
We had early PAT but the weather threw a spanner in the works. We were late leaving WDW and then had to contend with rain that you could not see the end of the car in, let alone other cars, so drove at snails pace. It was pretty hairy. Anyway, we didn't get to the port or checked in until after midday. We had to go to GS for something first, and then I headed to the Port Adventures desk to book the Princess/Frozen tickets. We had no issues getting ours, and the CM was able to easier accommodate us with 10.30 (priness) and 11.15 (frozen) sittings when we said we had nothing planned for Nassau day.
In the end, your plans need to be flexible if you want to book it, and it definitely has to be your first port of call once on board. We just got back from 4-night Dream, so we went low season also, which is going to lessen the demand. If travelling high season, definitely get on board early and head to the booking desk. If you can't get tickets to the Princess one, I was in the atrium at around 9/9.30 one morning queuing for Minnie photos and the princesses came out one by one, so you can still see and watch them from the atrium. Frozen characters, for us anyway, were in Artists Palette and were hidden around a corner, so you couldn't even see them

Hope that helps
