De man bash
(algures depois da linha 3813):
! Start a history substitution, except when followed by a blank,
newline, carriage return, = or ( (when the extglob shell option
is enabled using the shopt builtin).
[...]
$ The last word. This is usually the last argument, but will
expand to the zeroth word if there is only one word in the line.
Assim, o !$
irá recuperar o último argumento do último comando do histórico.
Aqui estão alguns exemplos e equivalentes:
$ echo foo bar
foo bar
$ echo !$ # recall the last argument from the last command from history
echo bar
bar
$ echo foo bar
foo bar
$ echo !:$ # the same like '!$'
echo bar
bar
$ echo foo bar
foo bar
$ echo !:2 # recall the second (in this case the last) argument from the last command from history
echo bar
bar
$ echo foo bar
foo bar
$ echo $_ # gives the last argument from the last command from history
bar
$ echo foo bar
foo bar
$ echo Alt+. # pressing Alt and . (dot) in the same time will automatically insert the last argument from the last command from history
bar
$ echo foo bar
foo bar
$ echo Alt+_ # the same like when you press Alt+.
bar
$ echo foo bar
foo bar
$ echo Esc. # the same like when you press Alt+.
bar
Tudo isso funcionará somente dentro de um shell interativo . Mas se você usar esse comando da sua pergunta dentro de um script como você disse que você semeou, então as coisas são diferentes: quando você executar o script, ele será iniciado em um novo shell, um não interativo shell, então a expansão do histórico não tem nenhum efeito neste caso e então o comando:
echo "An Example" > !$
cria o arquivo !$
se não estiver presente (caso contrário, substitui-o) e escreve An Example
nele.