This is partly because of the UK's ticketing system, which (like airline prices) heavily discounts for people who can book ahead and travel at off-peak hours. If you're able to do that, then for instance, right now you can get a ticket from Euston to Manchester on Weds 10th December mid-morning for 35 quid. If you're really price sensitive you can get there for just 14 quid (you have to change at Crewe and take an extra hour and a half of journey time).
The downside of this pricing system is (a) everybody complains about its complexity (b) if you really do need to travel at peak time or at very short notice you're going to pay a lot (c) it's really easy to make it look like it's a terrible rip-off by quoting the anytime walkup fare for an intercity journey :-)
Denmark also does this — Copenhagen to Århus on 10 December at 10:52 is £16 if purchased now.
My example wasn't especially ridiculous. Try something like Stansted Airport to Birmingham — 200km, 45 minutes slower than driving, and £97 — or £67 off peak.
The other ridiculous feature of British train tickets is when some return tickets cost just £1 more than a single ticket.
The downside of this pricing system is (a) everybody complains about its complexity (b) if you really do need to travel at peak time or at very short notice you're going to pay a lot (c) it's really easy to make it look like it's a terrible rip-off by quoting the anytime walkup fare for an intercity journey :-)