It's not as simple as paying X amount per bus for the screen and having AVL. The kit needs to know which bus stops the bus is supposed to call at on any particular journey (in town centres in particular, there are usually multiple bus stops served by different routes or groups of routes)
as has been touched on earlier, next stop displays / announcements are part of the same technology that provides real time information to the control room and displays at bus stops - this can all be linked in with ticketing kit or can be a separate box of tricks.
somebody (be that bus operators and / or local authorities) have to invest in the basic central box of tricks for the system (the smaller the area the bigger the cost per bus of having the central kit) then the kit on each bus / bus stop has to be paid for.
and maintained. and the ongoing communications costs paid.
and in some cases the difficulty of getting buses kitted out for one area's system to talk to the system in a neighbouring area - i believe this is getting better now there are more national standards, but in the early days of the technology it could be a big issue.
and then there's the ongoing cost of staff time somewhere processing data when there's a timetable change - this can be a sticking point, even before the cuts of the last 10 years or so, local authorities tended to find it easier to get hold of the up front capital for this sort of thing than any ongoing costs (e.g. additional staff time)
if you're not going to keep the data up to date, you might as well not bother.
in theory, with electronic bus service registration (which not all operators have gone for) and a national database of bus stops, this ought to be easy, but life is rarely as simple as that - and real time also needs to know the 'running board' for each bus (i.e. the bus that arrives at terminus on this journey is scheduled to depart on that journey) which the service registration doesn't show.
then there is the detail - for example, where you have a service with a loop 'terminus' (where the terminus on the registration isn't really a terminus) you need to tweak the timetable so that it comes out in a sensible form for Traveline, and tweak it a different way so it comes out in sensible form for real time displays.