Cross platform tools can get you really close but you'll be spending a non-trivial of your time tinkering/tweaking shared code to fix or create different issues on different platforms. That's time that takes away from creating a great user experience on a single platform.
That's not to say Cross-platform tech is all bad. Just that you have to be aware of the tradeoff that you won't be able to 'give it your all' towards the best user experience on a single platform.
PS - the one tech stack that gets you really close from all the ones I've tried (Mono, C++, hybrid web apps, RN) is Unity. But that's for an entirely different use case than apps :)