Its early days yet and I feel that each are valid in their own way, but it feels that Flutter has taken on board a lot of the mistakes of previous cross-platform frameworks and has built up a lot of momentum with developers actually interested in non-native development.
One really big pro for me is that you can actually have one codebase with Flutter. React Native is still “learn once, write anywhere” where you need to maintain separate codebases.
Personally I also found that the tooling around React Native (eg. Expo) makes it incredibly frustrating to work with, while it is something Google has done quite well with Flutter. Its a shame because I really like JSX.
With Xamarin it is my understanding there are quite substantial performance tradeoffs and you need to use both C# and XML, but I haven’t worked with it myself so would love to hear some contemporary users views on that point.