Na verdade, ls
informa tudo o que o kernel diz: não faz nada diferente em relação ao tamanho, dependendo de o arquivo ser um diretório). E o Linux reporta o tamanho lógico. Mas o tamanho lógico de um diretório não é uma propriedade muito interessante: depende do formato do sistema de arquivos.
O tipo de sistema de arquivos padrão na maioria das distribuições Linux é ext4, e é provavelmente o que você está usando. O Ext4 aloca blocos inteiros para diretórios e gerencia o espaço dentro desses blocos como achar melhor. Ele nem mesmo libera blocos se um diretório encolher ( dir1
continuaria tendo 9 blocos, mesmo se você removesse todos os arquivos contidos nele). Quando perguntado sobre o tamanho de um arquivo que por acaso é um diretório, o ext4 retorna o tamanho alocado para o diretório, e este é sempre um número inteiro de blocos.
Diferentes tipos de sistema de arquivos se comportam de maneira diferente. Por exemplo, com o Btrfs, experimentalmente, o tamanho de um diretório pode ser qualquer múltiplo de 2.