The hash differs because the data differs.
The file is UTF-8, not ASCII, so you should use the UTF-8 encoding to convert the string to bytes to get the same result:
byte[] data = Encoding.UTF8.GetBytes("The quick brown fox jumps over the lazy dog");
Also, the file may contain a BOM (byte order mark) at the beginning. That is included in the data, as the file isn't read as text.
Adding the UTF-8 BOM at the beginning of the data would give the same hash:
byte[] bom = { 239, 187, 191 };
byte[] data = Encoding.UTF8.GetBytes("The quick brown fox jumps over the lazy dog");
byte[] bomdata = new byte[bom.Length + data.Length];
bom.CopyTo(bomdata, 0);
data.CopyTo(bomdata, bom.Length);
byte[] hash = MD5.Create().ComputeHash(bomdata);