"Shortcut" is a purely Windows concept. It's an ordinary file (with
.lnk extension) which contains a reference to some other file or folder. Windows Explorer and other programs know how to open the actual file by reading reference information from shortcut file, just like as they know how to open a
.mp4 file. Other operating systems do not know what a
.lnk file is, because phenomenon of mounting partitions and hence file paths are different across different OSes.
At filesystem level, Windows' NTFS supports junction points, symbolic links and hard links (1). But FAT family (including
exFAT) supports none (2).
Android is based on Linux kernel. Linux's native filesystems (like
ext4) support hard links and soft (symbolic) links. For non-native filesystems (like
FAT) it depends on the filesystem driver.
exfat driver (for
exFAT filesystem) supports symlinks, but FUSE based
exfat-fuse does not. So is the old
vfat driver (for
FAT[N] filesystems). New
sdfat driver (for
exFAT filesystems) from Samsung does have optional symlink support for
FAT[N] filesystems as well. After MS open-sourced
exFAT, mainstream Linux driver is also based on
However that's not the end. External SD cards are usually formatted as
exFAT, so they may support symlinks depending on the driver being used. But Android does not expose actual filesystem to apps, instead it's emulated using FUSE or
sdcardfs. Emulation is another twisted story (basically a permission-less filesystem to make sharing files among different apps/UIDs possible), see detail in Android's Storage Journey and What is /storage/emulated/0/?.
FUSE drivers may support symlinks (if the underlying filesystem does), but Android's FUSE implementation does not. So is the in-kernel
So in short, for the most cases, you cannot create symlinks on external SD cards as well as internal SD card. You will get "Operation not permitted" or "Function not implemented" or similar errors. On rooted devices a commonly used alternative is bind-mounts. See details in How can I make a symlink (or equivalent) inside /storage/emulated/0?