The root cause is that web browsers were designed for document delivery but are used for building application UIs. The browsers don’t offer a standard set of common application UI components, so every team builds their own leading to inconsistency and half baked implementations.
In contrast, when you build a native app, developers can draw on a standard set of OS provided UI widgets.
In contrast, when you build a native app, developers can draw on a standard set of OS provided UI widgets.