Mostly because of the different peoples that populated the island over the past 1000-2000 years. Then you have a lot of isolation between communities up to maybe 100-150 years ago. For example my accent sounds quite different from Birmingham's 25 miles away because the Forest of Arden was between us for hundreds of years. There are other natural borders that were used for a long time like rivers, hills and moors.
With the US or Australia there are defined regional accents now but I suppose it's a relatively newer thing as they developed from more rapid mass immigration.
Im the information age things will become more aligned. I was reading something the other day which said a lot of young people in Britain are now speaking this "multicultural south east" dialect as it's in a lot of music and other media, and I hear a lot of it around here too. Sounds like idiots putting on a voice to me, but that's how they speak.