On Android, when an app needs something like camera or location or whatever, you have to give it permission. Why isn't there something like this on Linux desktop? Or at least not by default when you install something through package manager.
Because it requires a very specific framework to be built from the ground up, and FDO doesn't specify these. A lot of breakage would happen if were to shoehorn such changes into Linux suddenly. Android has many layers of security that they're fundamentally different than that of the unix philosophy. That's why Android, even if it's based on Linux, it's not really considered "a distro".
It is technically doable, but that would require a unified method to call when an app needs camera, and that method will show the prompt.
This would technically require developers to rewrite their apps on linux, which is not happening anytime soon.
Fortunately, pipwire and xdg-portal is currently doing this work, like when you screen share on zoom using pipwire, a system prompt will pop up asking you for what app to share. Unlike on Windows, zoom cannot see your active windows when using this method, only the one that you choose to share.
Most application framework, including GTK and electron, are actively supporting pipwire and portal, so the future is bright.
There is a lot of work in improving security and usablity of linux sandbox, and it is already much better than Windows (maybe also better than macos?). I am confident, in 5 years, linux sandbox stack (flatpak, protal, pipewire) will be as secure and usable as on android and ios.
XDG portals is the standard interface that applications (should) use to do things on your system. It is most commonly associated with flatpaks and Wayland.
You could have pipewire as the back end but XDG portal implementation usually is controlled by the desktop.