You are comparing the price of a budget airline flight, booked at least several days, if not weeks, in advance, with a first class train ticket bought on the day of departure.
Departing tomorrow afternoon, an EasyJet flight is £115. I don't know if the morning flights are sold out, or are currently not running, but they presumably exist. The train is £77 off peak (which matches the flight arrival time), or £166 peak (assuming there are sold-out morning flights). Even this late the day before, it's still possible to book onto a particular train, which is about £60-70.
Train times and ticket costs for tomorrow: https://traintimes.org.uk/edinburgh/london/06:30/tomorrow