NOTE: This command is destructive. Use version control or backup your templates directory before running it.
You can use sed. From your template directory (or directories) run
sed -i -r -e "s#\{% url ([a-zA-Z0-9_.:-]+)#\{% url '\1'#g" *
The expression matches {% url [view name]
, so arguments provided to the url template tag will be unaffected/unchanged.
To run it recursively,
find . -type f -print0 | xargs -0 sed -i -r -e "s#\{% url ([a-zA-Z0-9_.:-]+)#\{% url '\1'#g"
This sed command assumes your view names only contain alphanumerics, colons, dashes, periods and underscores - no other special characters. Now supports namespaced views.
Tested against the tags in this Django 1.4 url template tag Gist