Конечно, все ваше выражение находится в одинарных кавычках, где расширение не выполняется.Чтобы развернуть часть команды, переместите ее из кавычек:
rename 's/\d+/sprintf("%0'"$var"'d", $&)/e' *
Или поместите все выражение в двойные кавычки, но тогда вам нужно будет экранировать больше:
rename "s/\\d+/sprintf(\"%0${var}d\", \$&)/e" *