For the file system, I suppose the answer is "because it wasn't designed that way". That is, since none of the operating systems that used it as a main filesystem didn't want, need, or even came up with the idea of symbolic links, they weren't implemented.
As for the file system implementation/driver, support for symbolic links could in theory be added, but the file system needs a way to mark the file as a link, instead of a regular file (the link text can be stored like normal file data). Since the feature was never implemented, there's no pre-existing way to do that.
One would need to pick some field of the directory entry to mark a file as a link, but then the implementation would not be compatible with other implementations. In the least, other systems would probably not bother to add support for the links, so they would not be supported.
Also, note that FAT is quite an old filesystem, and mostly only used in cases where interoperability is considered useful. With that in mind, changes to the existing standard are a bad idea, and for serious use, all operating systems have better filesystems that support links, amongst other things.
Hard links are even harder, since they pretty much rely on having the file name in a different place from the rest of the metadata. On Unix-type filesystems, the inode holds most of the metadata, and directories just contain pointers to the inode. On FAT, the directory entry contains the name and all other metadata, so there's no one place to keep the metadata of a file with more than one hard link to it.