My understanding is that in OS X, the OS renders and uses a unique interpolation algorithm similar to bi-cubic or bi-linear (it's done via Quartz Compositor). In Windows, it's done by the driver and is based on NN.
That's my broad understanding too, although I can't comment on the specific algorithms used. QuadToneRIP expects 720ppi as input and its author Roy Harrington has said that on OS X, QuadToneRIP requests that resolution and the printing pipeline delivers it. This resampling must be done in the printing pipeline, since there's no reason for Photoshop, Lightroom, Print Tool etc to do it. On Windows the OS doesn't resample and so Roy has said that QuadToneRIP has to do it itself if it receives an image in something other than 720ppi. Given this I'd expect the Epson or Canon drivers would perform this function if you were printing through the driver.
[Clarification: The Epson Windows driver resizes to 360ppi, and only to 720ppi under the finest detail setting. 300 / 600 ppi for Canon. QTR always operates on 720ppi.]