Você precisa definir um PATH explícito para que um script seja executado em cron . O padrão é PATH=/usr/bin:bin e você precisa (pelo menos) /sbin .
#!/bin/bash
export PATH=/usr/local/bin/:/usr/bin:/bin:/usr/sbin:/sbin
...
Você também pode considerar ajustar as opções no ping teste ligeiramente. O -o permite que ping saia assim que receber uma resposta (ou seja, o host está ativo). O -W1000 força um limite superior no tempo que irá aguardar por uma confiança. Nos meus testes, isso fez com que ping esperasse no máximo quatro segundos; sem isso eu tive que esperar 14 segundos por uma resposta de falha:
ping -q -c3 -o -W1000 "${MAC}"