Você não pode redirecionar o texto para uma variável, você precisa capturá-lo. Mas você quer manter o texto stderr mas não stdout:
if error=$( tar -xf "$1" -C "$2/$dir_name" 2>&1 1>/dev/null ); then ...
if
atuará no status de saída do tar.
Desconte o hábito de usar ALL_CAPS_VARNAMES.