I had the toughest time finding easy transportation when I was there. It turns out the only bus rides I could find were not direct lines and would have taken 2-3 hours each way. For my next trip, I'd like to get to Waterloo cheaply by bus or train. It's a university town, there has to be cheap transport...
The normal way if going between Toronto and Waterloo by public transit is either by bus or train or combination. Both GO transit and Greyhound run transportation. It is true that both bus and train are going to take around 2 hours. That is normal time between downtown Toronto and Waterloo.
The key point that you may be missing is that GO transit mostly goes to Kitchener. Kitchener and Waterloo, while technically separate cities, can be treated as one for many purposes. If you get to Kitchener you can use a local bus to get to Waterloo, specifically the 200 Express bus that stops at the GO terminal in Kitchener. That will add about 30 minutes, making the total time about two and a half hours, but only about $3.50 to the cost.
Some GO and Greyhound will go on to Waterloo, but not all.
This assumes you are in downtown Toronto. If you are near the airport the Airways Transit can get you to Waterloo much faster but much more expensively.
There is also occasional VIA rail service to Kitchener.