The reason is that using GPS to measure distance always over-estimates.
Put less diplomatically: your GPS is wrong.
Why?There is an inaccuracy of several metres in each GPS reading on consumer devices due to radio waves being slowed down in the atmosphere.
image from thesciencegeek.org
A few metres isn't very far...As the measurements are taken frequently, the error in position is significant vs the distance you have walked in the time between readings.
In a car where you are going faster or even running, the error is less significant vs the distance travelled in that time.
Surely the errors would average out?All those little errors add up rather than cancel out because only one of the four points of the compass will take you closer to where you've already been. There's more chance that any random error will position you further away.
How come the iWalk app doesn't get the distance travelled along the route wrong since it also uses GPS?It already knows the route so it has more information to work with - it doesn't need to rely on accumulating GPS readings.
or put less diplomatically: it's made in Trebarwith Valley, not Silicon Valley.