Isso provavelmente seria porque o Apache não procura o nome do host na direção em que você está pensando. Em vez de procurar o hostname.whatever.local e permitir esse endereço, ele faz uma pesquisa inversa no endereço IP de conexão, verificando se a resposta corresponde ao nome permitido.
(Bem, na verdade, o Apache está fazendo uma pesquisa dupla, primeiro uma pesquisa inversa e, em seguida, uma pesquisa direta sobre o resultado do reverso).
Como a questão é sobre um endereço IP dinâmico, presumo que o PTR não seja simplesmente alterado constantemente.