Вы должны убедиться, что ваш исходный файл действительно сохранен в UTF-8, но не в Windows-1251. В противном случае эти символы не будут представлять действительные последовательности UTF-8.
Обновить:
Правильно, iconv // TRANSLATE зависит от локали. Это может работать правильно, если вы установите его на источник языковая локаль. Так что в вашем примере это будет какой-то кириллический языковой стандарт, я думаю, но не en_US.
Но на самом деле, если вам нужна транслитерация только для одного языка, гораздо надежнее сделать простую таблицу перевода самостоятельно: