Conforme explicado por @steeldriver, a opção precisa ser uma letra maiúscula O para o arquivo de saída. Como regra geral, ao lidar com nomes de arquivos e outras strings, em um script, é melhor ser seguro e colocá-los entre aspas. Isso evita algumas coisas que o shell pode fazer inesperadamente. A versão modificada do seu script é:
#!/bin/bash
while true; do
date='date +%s'
ext=".jpg"
fname="$date$ext"
wget http://rawcam.ele.uri.edu/tmpfs/image.jpg -O "$fname"
sleep 100
done
O que estava acontecendo era que a época com .jpg foi usada para criar o nome do arquivo que foi usado como o arquivo de log para essa execução do comando wget . wget estava baixando o arquivo image.jpg , e para evitar que o download anterior fosse "clivado", adicionamos os números incrementados, informando em .1 , a cada nome.
* a invasão é quando um novo arquivo sobrescreve um arquivo existente com o mesmo nome.