Да, двойные кавычки - это то, что не позволяет ~ расширяться ... будет работать следующее:
if [ -d ~"/sample" ]; then
echo "exists"
fi
Обычно лучше использовать:
if [ -d "$HOME/sample" ] ; then
echo "exists"
fi
$ HOMEобычно устанавливается Bourne shells