Minha sugestão seria (ligeiramente modificada, já que não tenho sua configuração de curl / HTTP):
$ t=$(TIMEFORMAT=%R bash -c 'time for i in {1..3}; do sleep $((RANDOM % 5)); done' 2>&1)
$ avg=$(bc <<< "scale=3; $t/3")
$ echo $avg # YMMV
2.667
Como time é um bash integrado, precisamos colocar o redirecionamento stderr "fora" da chamada de horário; é por isso que envolvi a parte principal com bash -c ... .
Você não precisa definir TIMEFORMAT toda vez através do loop; basta colocá-lo no ambiente para a chamada para bash / time.
Observe que a aritmética de shell é baseada em números inteiros, portanto, para valores de ponto flutuante, use algo como bc . Minha time de saída tinha 3 casas decimais, e é isso que eu também perguntei ao bc .