Você tem a ideia certa, session.key pode não ser gravável ou o caminho pode não existir.
A opção key-directory que você mencionou especifica o diretório em que os arquivos-chave DNSSEC públicos e privados devem ser encontrados ao executar a atualização dinâmica de zonas seguras.
Tente definir a opção BIND session-keyfile para o nome do caminho do arquivo no qual gravar uma chave de sessão TSIG.
Se não for especificado, o padrão é /var/run/named/session.key (e relativo à sua cadeia chroot).
Por exemplo na named.conf -section de options
session-keyfile "/var/bind/session.key";