I'm trying to figure out how to travel from Rennes (or St. Malo) to Poitiers in June, but all the trains and buses I can find pass through Paris, which seems like a huge detour.
Is there any option I'm missing?
Indeed, the French transportation network is organised very centrally around Paris.
Looking at the map of the recent (it might change rapidly) intercity bus connections provided by comparabus.com (some website to book buses) and the train network maps provided by the SNCF for Intercités and TGVs, it looks clear that most trains and buses are centered around Paris (you might find a connection in Tours or Le Mans) so in any case you will have to connect. Using regional trains and avoiding Paris is possible but probably longer and less convenient, going through Nantes.
An alternative would be ride sharing. Blablacar is the most popular service. A search for this weekend shows few direct Rennes-Poitiers trips though. Also know that ride share trips tend to appear only about 2 weeks before the date of travel, so if you want to secure a trip early, this might not be your best option.
Most French people now compare trains, buses and ride sharing options (and planes for the longer distances) when travelling across the country.
As I thought after a look on a map, there are options to travel by trains without going through Paris.
At a random date and time from the French SNCF site:
09H05 RENNES to 10H16 LE MANS
10H43 LE MANS to 11H43 ST PIERRE DES CORPS
12H03 ST PIERRE DES CORPS to 12H42 POITIERS
Or, (this time from the German website)
Rennes dep 12:35
Le Mans arr 13:54
Transfer time 44 min.
Le Mans dep 14:38
Tours arr 15:46
Transfer time 42 min.
Tours dep 16:28
Poitiers arr 17:37
Both found by just entering your departure and arrival times, no tricks needed. And there are more options. As a second check, I use the German railway planner, which is also good for trains (but not prices) outside Germany and it also finds these same trains, again for the same day.
If you do travel to Massy or Paris, it would give a one station change, rather than the average trek from station to station in Paris, most of the 'via Paris' options for these areas are 'one station only' the station being Montparnasse.