Vários motivos, eu acho
- Você pode armazenar diferentes níveis de compatibilidade com vários atalhos diferentes para o mesmo EXE, conforme forem interpretados pelo shell, em vez do sistema de arquivos.
- Certos links de atalho não existem no sistema de arquivos. Alguns deles são simplesmente referências a GUIDs ou strings especiais interpretadas pelo shell.
- Você não pode incluir opções em um link simbólico. Você pode apontar para o EXE, com certeza, mas você não pode dizer ao EXE mais argumentos.
- Você não pode escolher um ícone para um link simbólico.
- Você não pode escolher em qual diretório trabalhar em um symlink.
- Arquivos de atalho não precisam apenas apontar para arquivos, eles podem ser hyperlinks ou links de protocolo (no caso de um arquivo .URL).
- Arquivos LNK podem existir em qualquer sistema de arquivos. Os links simbólicos são manipulados pelo próprio sistema de arquivos, no caso do Windows, NTFS.
- Não há necessidade real de substituí-los. Eles funcionam, são minúsculos, podem ser ampliados no futuro, caso haja necessidade de mais funcionalidades para serem adicionados a eles do que os listados acima.
- Os direitos administrativos são necessários para criar um link simbólico (por um bom motivo - caso contrário, o redirecionamento de arquivos inocentes para arquivos maliciosos pode ser executado com muito pouco trabalho)
Haverá mais razões do que isso, mas acho que é o suficiente para você começar :) - Existe um link fornecido pelo @grawity aqui que dará algumas leituras adicionais sobre partes deste tópico.