Its because EA (and to a slightly lesser extent, Valve), so no difference between a retail copy of something and a download version. It could also be regarded as greed, but that is only a slight part of it.
To prove my point, XCom: Enemy unknown is (at the most expensive) £14.68
Same game on Steam is £29.99
Wait a few days, and you can save yourself over £15!