Не сильно свежая статья, но суть не сильно поменялась с тех пор:
https://www.altexsoft.com/blog/engineering/xamarin-vs-react-native-vs-ionic-vs-nativescript-cross-platform-mobile-frameworks-comparison/Резон простой:
Юзаешь NativeScript: Тогда Angular на себя не похож
Юзаешь Ionic: Получаешь жуткое тормозящее приложение, на Webview
Юзаешь ReactNative: Имеешь необходимость вникнуть в новый язык разметки и фреймворк, но хотя бы получить нативные интерфейсы и продолжать работать на JS, а с недавних пор ещё и TS.
О Xamarin говорить воздержусь.
Flutter: Отлично, мило, компиллируемо. Выучив его можно рассчитывать на то, что через год-два большинство проектов под мобилки будет на нём. Но пока надо будет помириться с небогатым комьюнити и сыроватой документацией.