There are lots of ways a cruise can show up as "sold out" and still have cabins available. First, there are large TAs that buy up or take options on large blocks of cabins. I really don't know all the details of how they interface with
DCL, but if they don't sell all of these cabins, some may eventually show up in DCL's inventory again.
AAA and All Seasons Travel are 2 that do this--AAA only for certain cruises, all seas for a lot. AAA can book you on any cruise, but you will see certain cruises advertised as "AAA cruises" in their promos.
Secondly, a cruise can list as "sold out" if a given child's age range is full. That is, there may be a cabin if 2 adults were trying to book, but none would show as available if they had a child of a particular age.
Thirdly, DCL always (or nearly always) has some cabins held in reserve for problem situations. We were on a supposedly "full" cruise and had a cabin where the bed wouldnt' flip properly. After 2 attemps at repair, DCL moved us to another cabin right down the hall. Wasn't it interesting that they had a cabin open...same section of the ship...when they were "full?"
SO....the more full a cruise is, the less chance of an upgrade...but DCL is always manipulating their inventory to book as many "full" cruises as possible...so there is always a chance.