Yes, don't just unfairly collude to screw people over, hide it so that you can continue perpetuating the injustice instead of getting the punishment you fucking deserve! Sand Dreamer's boss, and the director of the other division, are acting unethically.
What part is unethical?
If the business has a greater need for SD in their current role than it has for SD in the new role, then it may be a rational decision to decline to hire SD into the new role.
I'm not saying that that's the way they *should* run their business; SD's current management seems to lack any succession plan for replacing SD if needed. But I am saying that I don't see it as a breach of ethics.
Their calculus is: value of having SD in new role - cost of transitioning SD to new role < value of retaining SD in current role
SD can work to change the components of that calculation.
* Make yourself even more valuable in the new role. This may be hard to do, beyond what you've done already.
* Reduce the cost of transitioning you to the new role. Get your boss to build that succession plan. Offer to train your replacement for a while. This may be beyond your immediate control.
* Reduce the value of retaining you in the current role. Communicate that the lack of mobility is demotivating and lowers your commitment to the business. You may work fewer hours (reducing the value of retaining you in the current role), or ultimately leave entirely (eliminating any value of keeping you in the current role).
Typically the best (IMO) way to deal with this is the third bullet. Continue to do great work (or even improve your results), while at the same time communicate to your boss (or skip a level and talk to your boss's boss) that the lack of mobility is a problem, and if it's not addressed then for the sake of your career you'll have to find somewhere else where there is greater opportunity.