But it's no different to much of the rest of the country. Some places have flat fares, which is fair enough, but most other operators would be expected to charge a similar amount. In the modern era, £3 seems reasonable for a journey of about five miles; whilst the journey you mention is shorter than this, there are three issues that you have not mentioned:
(1) The top of Whiteladies Road is (I believe anyway; I may be wrong) just outside the Central Zone for ticketing purposes, meaning a slightly shorter journey along there should cost less
(2) The journey does take anything up to half an hour subject to City Centre traffic volumes
(3) This is only one example of such a fare...
However, I can tell you that the Zonal system *is* under review. What it also means is that a journey from Temple Meads to somewhere like Bradley Stoke shouldn't cost much more than the price you've quoted.
I doubt that a single from Bradley Stoke does cost a lot more considering a FirstDay ticket is £4. I am prepared to believe that singles to the outskirts of Bristol are not much more than £2.90 and in these cases, I wouldn't complain about their value for money. But for journeys that are 2-3 miles (definitely not 5 miles by the quickest route on foot) then £2.90 is bad value for money IMO.
I don't know how First price their tickets, but maybe an extra 'zone' of pricing needs to be introduced for journeys like the ones I have mentioned.
If First made their prices transparent then I could compare the price based on different journeys in Bristol, but of course I can't...
My local bus company is Keighley and District who are generally regarded to have reasonable prices (certainly comapred with their sister companies Burnley and Pendle and Lancashire United).
For a 3.6 mile journey from my house to Sutton in Craven they charge £3.20 single.
An off-peak day ticket valid anywhere on their services is £3.80.
Your £2.90 single may be high, but it's not atypical - if you regard these prices as high in Bristol they're high in much of the country.
Ipswich Buses have a maximum single fare of £1.80 for any journey within the town which is roughly up to around 3 miles.
In Swindon there is a maximum single fare of £1.80 for journeys that appear to be up to around 5 miles.
A single on Wessex Red in Bristol is £1.67 on a smartcard or £2 paper ticket.
These are just examples of buses I have used in the last few weeks, which I think are reasonably priced. As well as being reasonably priced, the prices are transparent and publicly available on the internet which is something I also like.