Você não disse qual cut você está usando, mas desde que você mencionou a opção longa do GNU --characters , eu assumirei que é essa. Nesse caso, observe esta passagem de info coreutils 'cut invocation' :
‘-c character-list’ ‘--characters=character-list’Select for printing only the characters in positions listed in character-list. The same as
-bfor now, but internationalization will change that.
(ênfase adicionada)
No momento, o GNU cut sempre funciona em termos de "caracteres" de byte único, então o comportamento que você vê é esperado.
Suportar ambas as opções -b e -c é exigido pelo POSIX - elas não foram adicionados ao GNU cut porque tinham suporte multi-byte e funcionavam corretamente, mas para evitar erros na entrada compatível com POSIX. O mesmo -c foi feito em algumas outras implementações cut , embora não seja FreeBSD e OS X pelo menos.
Este é o comportamento histórico de -c . -b foi adicionado recentemente para assumir a função de byte, de modo que -c possa funcionar com caracteres de múltiplos bytes. Talvez daqui a alguns anos funcione como desejado de forma consistente, embora o progresso não tenha sido exatamente rápido (já faz mais de uma década). O GNU cut nem sequer implementa a opção -n ainda, embora seja ortogonal e destinado a ajudar na transição. Existem potenciais problemas de compatibilidade com scripts antigos, o que pode ser uma preocupação, embora eu não saiba de forma definitiva qual é o motivo.