If you think a single on-site interview of a candidate, it usually takes a few hours of multiple people from every segment of the company (mgmt, development, HR). Everybody has to prepare beforehand for some time for these interviews as well. So in the end, every on-site interview is costly for a company.
As an engineer, I dislike attending on-site interviews to hire people because I see it as a time that is not used optimally.
Finally, IMHO, the solution is to provide both standard-track and fast-track interviews where exceptional (on paper) candidates can be called directly for an interview and regular candidates would have multi-stage interviews.