Ultimately it comes down to practical reasons. The finish line must be adjacent to the tower where they wave certain of the flags, and also needs to be in clear view of the scorer. The location of the grid, however, needs to be on a clear straightaway with room for dozens of cars - and sometimes that doesn't line up with the necessary location for the finish line.
See this article for some more detail:
The most common reason is practicality. There quite often is only a limited space on pit straight between corners. It is necessary, for example, that the finish will be by the tower where the start/finish flag marshal will await with the chequered flag, but also other such flags - like the black flag, the black/white 'bad sportsmanship' flag, and 'the meatball' - black with orange circle - flags which can only be shown at the start finish line.
A full grid of double-spaced Grand Prix cars can take up quite a bit of room - and at most Grand Prix circuits the various support categories have larger grids. To fit all the cars onto the grid it is sometimes necessary to move the start line forward of the finish line. Silverstone is a double exception in that the start line is behind the finish line. A reason for this is in the hope that the field will be slightly more spread out when the field arrived at Copse corner the first time, which is sharper now on entry than it used to be.