The reason why is because Microsoft and HDD manufacturers follow the Metric system differently.
Microsoft considers a Gigabyte as 1024MB. When it comes to computers things always double (that's why you get 2, 4, 8 or 16GB of RAM, not 3 or 7GB). So the closest you can get to a Metric Gigabyte (1000MB) you can get is 1024MB, so that's what they went with when they made the NTFS file format.
However HDD manufacturers follow the Metric system more closely, which would have a Gigabyte as 1000MB. So you buy a HDD that says 100GB on the front, and when you format it you lose capacity due to the fact the file format considers a GB as 1024MB, while the HDD considers it as 1000MB.
This also applies to the number of Bytes making up a MB, and the number of Gigabytes making up a Terrabyte.
Seems a silly reason why, but it has stuck and is now just accepted.