FFT of a pure sine wave is not a single peak
Just as I wanted to click the "ask" button, I realized that I had run into a fencepost problem.

My time vector is too long by 1 point. This means that the first and last point of my voltage vector are the same, which in turn means that my periodic signal has a phase shift as it repeats. This also explains why the phenomenon went (almost) away as I decreased the frequency. 

If I instead define my time vector properly as 

t = 0:1/f_sample:T_total-1/f_sample;


then I get the result that I expect: A single peak and a tiny bit of noise around it.