Intervalos de datas & regex não é realmente uma boa combinação. Se eu interpretar o $ em seu grep corretamente, a data é o último campo em uma linha.
Tente isto:
awk '$NF >= 1965 && $NF <= 1996' filename
Se você precisar usar o grep, ele se tornará mais complicado:
grep -E '196[5-9]|19[78][0-9]|199[0-6]$' filename