The math contributes some to this. Let's say the correct answer is 1%, and out of ten people, 9 of them guess 1% and the other guesses 51% - that one guess shifts the average from 1% to 6%. And if it's 1%, then there's no room for people to underestimate and bring the number back down, and the same is true of numbers close to 100%. The numbers closer to the middle don't necessarily mean that people were more correct on an individual level, but that some people overestimated and others underestimated and it came out closer to the right number. The graph ought to give information about the spread of errors and not just the raw average.
Not just over/under estimating, but people intentionally ignoring instructions, answering absurdly for the lulz, or just misunderstanding and inverting their answers (percent not).