Honestly I think there is two parts to the air vs rail debate.
1. People don’t see the cost of the ancillary bits when booking. People probably should, but you look at the sleeper, you see a headline price. £150. £200. £300. Whatever. You go onto easyJet you see a headline price. £30. £50. Etc. For most people that’s the end of the discussion.
2. Fundamentally the headline price, not taking into account the components for travel, overnight accommodation, en-suite in some cases, and of course subsidy, is for people to sleep on a train. A very nice train perhaps but still a moving, relatively cramped, unusual environment. Blue light switches aside, that probably won’t lead to the best nights sleep. Now personally I don’t spend £200 on a hotel room .... ever, so even if you find enough people to fill 6 carriages from Glasgow on a Tuesday night in January, you are selling them something which will in most cases be a comparatively poor nights sleep, now at a significant financial premium from the flight and hotel. When I used to buy Caledonian solo berth upgrades from First Scotrail for £49 only a few years ago, that simply wasn’t the case. It was then a relatively economical room for the night.
To be clear, I think the sleeper is a great service and I’d hate for it to be an irrelevance (and thus easily disposed of), but I think there is a fundamental miscalculation in what people are prepared to pay for a mattress on a train. It’s primarily travel, it’s not the Ritz.