Respostas:
Parece que du é um pouco mais rápido neste exemplo.
$ time bash -c 'for ((i=1; i<1000;i++)); do stat -c %s file1 >/dev/null; done'
real 0m3.588s
user 0m0.120s
sys 0m0.344s
$ time bash -c 'for ((i=1; i<1000;i++)); do du -b file1 >/dev/null; done'
real 0m3.161s
user 0m0.092s
sys 0m0.360s
Mas, pessoalmente, eu prefiro usar o stat, porque a maioria das pessoas usa o stat para recuperar informações básicas de um único arquivo. Portanto, é mais provável que o stat seja otimizado para esses trabalhos no futuro.
Você pode usar o time
comando para descobrir:
time du -b file.dat
time stat -c %s file.dat