What happens the second time you print the report? I expect it would be faster because the Crystal runtime will already be loaded into memory. Also, when you run the Crystal designer application, all of this is loaded into memory when the application starts - that's part of what takes it a bit to start up.
Also, when you print the report in Crystal, do you refresh the report on the screen and then print? Are you printing data that's saved with the report? Either of these will speed up the processing in Crystal because PrintToPrinter will refresh the data as part of its processing. I would try opening the report (without saved data) and then clicking directly on the print button without running the report first. This will be closer (but not exactly the same) as using PrintToPrinter.
-Dell