As a point of comparison, Microsoft ships its OS across a variety of manufacturers and largely keeps it maintained across them (give or take some exceptions like enterprise environments & the like).
Even unlocked Android phones purchased independently of carriers have inconsistent lengths of support, so it doesn’t seem to be entirely a result of carriers, so…What happened here?
In iOS, almost the entire userspace is proprietary.
In Android most userspace funtionality is FOSS too.
Well, even the phone and messages apps are deprecated now, and the aosp keyboard is very problematic on lots of apps, so soon enough there won’t be much foss left beyond the kernel.