I'm not from the US, but I have worked with the US telecoms industry. The original reason for this was due to the numbering plan. In most countries a special 'area' code was chosen for mobiles, however in the US they decided to just allocate mobile numbers in the existing area codes (NPAs). At least in the early days of cellular it cost the providers more to connect a call to a cell phone and so someone has to pay it. In a numbering plan where it is possible to tell a number is mobile just by looking you can put that cost onto the caller, but if it looks like a landline then the caller would feel hardly done by getting charged extra. So that extra cost was put onto the cell phone user accepting the call.
This is hearsay from colleagues so may not be 100% accurate, but it makes sense to me.