A one way off peak ticket from Gatwick to London Bridge or St Pancras bought a few minutes before departure costs 10 pounds.
A one way off peak ticket from Birmingham airport to Euston a few minutes before departure costs 24 pounds for a train taking 2 hours or 50 pounds for a fast train.
Yes you can buy a ticket in advance for less but if your plane lands late, your ticket is invalid. Planning on allowing 2 or 3 hours between landing and an onward train departing is not popular.
The Stansted Express sells tickets for 8 pounds one way if booked in advance - you need specify only the day of travel, not the exact time of train. Deutsche Bahn in Germany have a scheme allowing one to purchase a fairly flexible train ticket to the airport provided it's bought from an airline in conjunction with a flight ticket.
If there were a similiar scheme to the Stansted Express or the German Rail Air scheme, I imagine BHX would become much more viable for people travelling for leisure and based in London.