The problem with modern, native-looking UI surfaces is that they are hard to design and maintain on cross-platform applications.
How do you design and implement an interface that feels native across platforms?
First there is the easy approach: The common denominator elements. Essentially what you get when creating a Java Application. The UI will probably look kind of native, but also outdated. Think Windows 89-Style Settings. You're also limited in how you can present options because you have so few form elements to play with.
The other approach to native is to use modern UI elements. For one thing these are not easy to get. While on macOS Cocoa bindings are at least available, on Windows it is pretty much impossible to get anything but the Windows-89 style form elements. Even if all the bindings were available, which also has to take various Linux Desktop Environments into account, then you had to design for and maintain multiple versions of the same settings menu.
So I hope this explains why non-native controls are a sensible approach. You create your own design system that is (mostly) consistent across platforms. Designers only have to design one surface, they can create new patterns if necessary and engineers only have to maintain one implementation. Of course they have to be accessible and they are. I say "mostly consistent" by the way, because Firefox still respects some UI conventions from operating systems. For example it uses system fonts, system font-scales, and changes naming conventions and button orders appropriately.
This reduces work but of course it still is work to update and maintain that surface. about:preferences in Firefox has quite become quite messy over the years and is neither loved by designers nor engineers, but it's time and resource intensive to update it.