Because one platform supports more options and when using that control on a different platform there are exactly two choices: break cross compatibility or reimplement the control.
Add evolution of controls and idioms over time, and it's literally impossible to always unify: not all platforms evolve their non-trivial components in the same direction.
I'm glad I asked this because your answer suggests this is the main problem with cross-platform UIs.
What do you think is the right thing to do? To have a common denominator kind of approach where a control works on all platforms but with fewer features, or to reimplement the control?
Do you have an example handy of a control/idiom that caused this problem?
It sounds like reimplementing (emulation) is a good thing.
This is not correct. Many controls use the native implementation of the underlying platform.