É provavelmente devido a diferentes sistemas de arquivos usados. Por exemplo, o Ubuntu usa o ext4 por padrão, enquanto as unidades USB geralmente usam o FAT32 e o Windows usa o NTFS.
O ext4 tem alguns charcters não permitidos: NUL ( ), /. e os nomes de arquivos especiais .. e / ( Wikipedia ).
O motivo / é não permitido é porque é usado para diretórios, e o ext4 provavelmente ficaria confuso entre um nome de pasta e um diretório totalmente diferente se myfo/lder fosse permitido em nomes de pastas. Por exemplo, se você tivesse um diretório chamado myfo , o ext4 poderia ver isso como um diretório chamado myfo e dentro de lder outro diretório chamado ? . Espero que isso faça sentido.
O NTFS também possui caracteres não permitidos, como * , | , %code% e muito mais. A lista completa pode ser encontrada aqui .