Sembra che il pattern glob di negazione non sia ben noto. Quindi puoi usare:
find . -name "[!.]*"
Ho trovato questo qui:
find . \( ! -regex '.*/\..*' \) -type f -name "whatever"
Questo non risponde alla tua domanda, ma per il compito di trovare file non nascosti mi piace lasciare che find trovi tutti i file, quindi filtra con grep.
find . -type f | grep -v '/\.'
Simile al tuo approccio ma forse un po' più semplice.