Protože to prostě nakonec nefunguje (dobře).
Liší se systémové frameworky pro jakoukoli službu systému počínaje uživatelským rozhraním (elementy co se kreslí a se ketrými se manipujuje na obrazovce), uživatelskou interakci (třeba iOS zařizení nemají hardwarová tlačítka pro ovládání o kterých by aplikace věděla), ukládání dat, třeba po to jak se chová aplikace když není aktivní (“na popředí”), prostě na všechno…
Ano, existují “multiplatformní řešení”, která vypadaji na blogách a presentacích úžasně, ale aplikace co z nich lezou jsou prostě (možná kromě her které si řeší celé UI samy - obvykle pomocí specializovaných frameworků které používají přímo nízkoůrovňové služby a odstiňují jejich rozdíly /OpenGL vs. Metal/. defacto reimplementují potřebné sytémové frameworky) “divné” a kdokoli je začne používat od nich po čase pokud tu aplikaci rozvíjí - odejde. Overhead s tím jak mu nevyhnutelně rostou v kódu výhybky pro jednotlivé systémy (a v Androidu podstatně víc i pro jednotlivé verze systému) nakonec stojí víc práce času a nervů než to dělat nativně pro každou platformu zvlášť.
Současný stav není ani špatný ani nesmyslný, je logický. Už v době Javy ME se to rozpadalo po výrobcích a systémech. Pokusy ho nějak “řešit” jsou v důsledku plýtváním silami které by mohly většinou být mnohem užitečněji použity na vymýšlení k čemu ty aplikace jsou a služeb které poskytují. Naprogramovat to je pak už řemeslo kdy je dobré, kromě okrajových a specializovaných oblastí (casual hry,opravdu jednoduché poomocné utilitky) použít přímočará nativní řešeni a ne vynalézat kola a rovnáky na vohejbáky.
Jo a zkušenost s vývojem mobilních aplikací mám vic než 10 let (od doby té Java ME).