Главная идея Flutter — отрисовывать интерфейс полностью самостоятельно, без использования нативных компонентов. Это даёт разработчику полный контроль: UI будет выглядеть одинаково везде. Но именно в этом и кроется проблема. "Одинаково" — не значит "нативно". Пользователь ожидает одно поведение от кнопки в iOS, другое — в Android. Flutter нарушает эти ожидания, создавая ощущение искусственного слоя между приложением и платформой.
Кроме того, несмотря на общий код, логика адаптации под каждую платформу никуда не девается. Нужно учитывать размеры экранов, особенности навигации, поведение клавиатур и разрешения. Да, всё это можно решить — но не бесплатно и не в один клик.