Since this used to work, and works fine for people running bash on Unices (I tested on Debian here), I think you've found a Cygwin bug. The Cygwin project has a page about reporting Cygwin bugs. They have a bunch of useful information and steps there, far too long to summarize here.
In the meantime, I suspect you can work around this by escaping the character. Bash's
echo, when given the
-e flag, interprets various escape sequences:
c:\cygwin\bin\bash --login -c "echo -e '\xd1\x84'"
should work. Hexadecimal
D1 84 is the UTF-8 encoding of ф. If you have the
unicode tool, it'll tell you—but so will just echoing the character to
$ echo -n 'ф' | od -t x1
0000000 d1 84
$ echo -n 'ф' | xxd -p
The Cygwin FAQ tells me it uses UTF-8 by default, so that should work. But of course you can use other encodings too (I think Windows mostly uses UTF16le):
$ echo -n 'ф' | iconv -t utf16le | xxd -p