What's going on has to do with confidence levels and margin of error. Until election day, you never know the exact percentage of support each candidate has, unless you survey everyone. So there is always the possibility that your poll results will be wrong. The confidence level of a survey is the number that tells how confident you are that your results accurately reflect the true percentage of support in the entire population. The margin of error gives the range in which you expect the confidence level to apply.
Every poll has a margin of error.
Its value is determined by the size of the sample used. It makes sense to think that a larger sample size will yield results with a smaller error. Interestingly, the margin of error is not substantially reduced as your sample size grows larger. It is possible that your poll might just be one of those 5 times out of 100 where the results are flat out wrong. It is worth considering, especially with something as large as a mayoral election on the line.