Silly rabbit!
As mentioned earlier and to which I concurred, the new inbound train's schedule is pretty lousy, with a long gap in the schedule. If the train was a proper 60 minutes after the last, or arriving before 10, there'd be no reason to complain.
They could make this train depart at 11AM and still cancel all the morning buses, the ridership would be even lower
If they made it 8:50 the would be probably no complaints.
It's not about trains vs. buses, it's about reasonable scheduling. The schedule of this train is not reasonable, it's just too late for most shoulder-peak commuters who used the 8:30-8:40 (and Langstaff 8:55) buses.
This new train does a good job replacing the 9:10 and 9:20 buses. It can't replace the other 4 cancelled ones. It's not about "more buses instead", it's about "some buses that served specific schedules that couldn't be replaced by the new train".
Right now they're very big on utilizing one crew for multiple runs to cut costs. So the timing of trains is restricted by the availability of crews. Currently 838 (the 9:20 run) is operated by the crew that does the earlier 834 (7:25) run. They're scheduled to arrive at Union at 8:13, after which they have to change ends and do a brake test(10mins), deadhead back up to RH (40mins), where they once again have to change ends and do brake test(10mins) which leaves them with about 5-10 mins to spare. So it can't be done any faster with that crew. Which will bring us to the obvious response - use a different train/crew.
I can assure you the logistics of crew dispatching are quite complicated and I believe its fair to assume that they did indeed do their due diligence on the matter. Afterall GO obviously wants its trains to be better utilized, its not their goal to run empty trains and I'm sure their aware that an earlier train on the line would likely serve more people.
Some might suggest an easy solution - use one of the earlier RH trains. Well, 832 (the 6:55 train) turns into 477 (7:50 Lakeshore west out of Union). 830 (the 6:25 train) was recently changed to a different assignment, one that actually works over night. For them to do the 838 run, even if it left at say 8:30, would result in a total shift time over 11 hours. Now your starting to run into problems with hours of service and aside from that it would add 2 1/2 hours of overtime, which as I've stated is something they've been avoiding like the plague.
Next is looking at assignments on other lines and seeing if they could add that run to their schedule while taking into account potential additional overtime costs. Sorry but I don't have the time to go into a detailed analysis of such. But after a quick glace, it seems doubtful to me that they they could add this run to another assignment, least not without changing that runs schedule. I'd also assume that they looked into the possibility of having a new job which could do that run alone, but perhaps found that there would be no use for the crew afterwards which goes back to efficient crew usage. It's also possible that there's simply no man power for such a run at the current time(depends on what the spare board allotments are, which I'm not privy to). It's also possible that there's simply no track time for that run at an earlier time. Either at Doncaster or north there of(territory that GO does not own) or possibly even at Union station itself.
My point being that its not a simple thing to change a schedule. Sometimes other factors interfere with what would be the most optimal time.