I think the main thing is that all the crew are aware of the benefits and drawbacks of the position. Many stay for several years with the same cruise line. Some change cruise lines for more money, or to see other places.
Each crew member is free to stay or leave. If they do not like the job or the money, they can go home. What they earn must be good enough to keep them as an employee. They have free accommodations, free food, and free medical care while in the contract. if they could not afford to live between contracts then I doubt any would sign a new contract.