Primeiro de tudo, você está reinventando a roda. É para isso que serve o comando time
:
$ time script.sh
real 0m0.005s
user 0m0.000s
sys 0m0.004s
Então, você tem um erro de sintaxe:
echo "runtime: " $(runtime) >> result.txt
A sintaxe $(foo)
é a substituição de comando, ele tentará executar foo
. O que você quis dizer foi
echo "runtime: $runtime" >> result.txt
A propósito, você deve sempre incluir as mensagens de erro que você recebe na sua pergunta.