Eu já vi isso acontecer: um arquivo tinha um "a" regular (ASCII 0x61), o outro tinha uma "letra pequena cirílica a" muito semelhante (U + 0430). Existem muitos caracteres no alfabeto cirílico que parecem exatamente com aqueles ("e", "o" são outros dois freqüentes) (*).
Uma maneira de identificar o problema (e o malvado): dir
ou ls
para arquivo e olhar para a saída com um editor hexadecimal (no Linux você também pode usar o menor: ls * | hd
).
IIRC também é possível usar o caractere Unicode "ZERO WIDTH SPACE (U + 200B)" em um nome de arquivo.
(*) Eu escondi alguns no texto desta resposta ...