Você pode produzir o tipo de sistema de arquivos que contém um determinado arquivo ou diretório usando
stat -f --format="%T" /path/to/file
e tome medidas com base nisso. Algumas saídas possíveis são cifs , nfs , afs ,… (presumido remoto) e ufs , ext2/ext3 (sic-ext2, ext3 e ext4 possuem o mesmo número mágico do sistema de arquivos), btrfs , tmpfs ,… (presumido local).
Uma coisa que pode ajudar você a decidir se um tipo de sistema de arquivos é local ou remoto: GNU coreutils, que inclui stat e df , tem uma noção de sistema de arquivos "local" e "remoto" para algumas dúzias de diferentes sistemas de arquivos tipos.
df -T -l | awk 'NR > 1 { print $2 }' | sort -u
produzirá os tipos de sistema de arquivos de todos os sistemas de arquivos montados que df acredita serem locais.
Como apontado nos comentários sobre a pergunta original, é difícil dizer se um dispositivo de armazenamento é local; um sistema de arquivos ext3 em /dev/sdb5 pode estar em um dispositivo Fibre Channel, que pode ser conectado diretamente ou pode ter vários switches de rede distantes, o que é improvável que você consiga discernir usando utilitários padrão no nível do usuário.