The reason for these differences is that the environment is somewhat different in different parts of the range. Populations become adapted to the situation in their areas, but this adaptation is limited by gene flow between neighbouring sub-species.