As a freelancer, I am free to work when and where I want. When onsite I am expected to be present during certain hours on certain days. I am also unable to take phone calls or deal with other customers. Because of this, I charge an onsite fee. The amount is private and varies, but say a customer wants me for a week on site, I would charge an additional 10 to 30 % onsite surcharge to my fees (depending on many other factors, like what rate they are paying, length of project, how busy I am, how much I like being at the client site, how much profit I am making anyway from them etc.). If I am to be onsite for a few hours or half a day, I waive the fee of course as this is nothing more than a long meeting. I would never commit to more than a week as it would begin to adversely affect my business.
All it really represents is that if they want to benefit from my presence, immediate input and ability to be questioned on demand, to train or enhance their team, and to be constrained to working when they want me to, then they have to compensate me for that. So onsite should be more expensive, definitely. However, not all customers will understand that and how you approach it and sell it is altogether a different matter. But being onsite is a new demand, on top of doing the project work, so they should pay more.
EDIT: I never charge travel or accommodation. I have found it much easier to explain a surcharge for being onsite rather than negotiate travel and accommodation charges. In that way I travel how I want and stay where I want, and it is nothing to do with the client.