sudo -s
cria uma sessão de shell de login. Então, depois de sair, você volta a ser um usuário comum. Em seguida, ele executa a quarta linha, mas você não é root nesse ponto, por isso falha.
Você não pode simplesmente colocar um sudo na frente da instrução echo, já que esse é um comando interno.
Então, tente isso:
#!/bin/bash
free -m
sync
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
% bl0ck_qu0te%