You already can buy a generic Android phone, and everything works in it, if the manufacturer is sane.
But you can't get security updates for a long time, except for a few models into which manufacturers or enthusiasts put efforts.
Linux kernel does not have a stable binary interface. Most phone devices (cameras, fingerprint sensors, even video controllers and radio modules have closed-source drivers. You can't expect manufacturers of these parts to update the drivers for their 3-year-old components for a newer kernel: they want to sell this year's parts instead. Reverse-engineering these drivers is tedious, and only buys you a few years on a handful of models.
Long-term support works for Apple because they have essentially one line of phones, with a narrow set of components, and an enormous power over suppliers. So they can afford to buy serious users' loyalty.