#!/bin/sh
num=1
outfile="image$num.jpg"
while [ -e "$outfile" ]; do
num=$(( num + 1 ))
outfile="image$num.jpg"
done
raspistill -o "$outfile"
O loop no script acima incrementará a variável num em um e criará um novo nome de arquivo de saída em outfile usando esse número, até que um nome de arquivo que não seja obtido seja encontrado.
Isso pode falhar se várias cópias do script forem executadas simultaneamente, pois há uma condição de corrida entre o teste da existência do nome do arquivo e a criação do novo arquivo. A execução do script com um intervalo de um minuto não deve ser um problema, a menos que demore um minuto ou mais para que raspistill crie o novo arquivo. Nesse caso, adicione touch "$outname" após o loop para "reivindicar" o nome do arquivo o mais rápido possível (invocações simultâneas do script ainda podem falhar).
Por "falhando" quero dizer duas ou mais invocações do script usando o mesmo nome do arquivo com raspistill .