Deine Tests hast Du wohl mit cygwin gemacht. Denn wenn ich das auf meinem Linxuxsystem ausführe bekomme ich als Ergebnis eine korrekte Ausgabe. Schon komisch dass bei cygwin das Ergebnis anders aussieht 

Code:
framp@obelix:~/test$ cat tick.sh
#!/bin/bash
FILES=" a b c d\r"
FILECNT=`echo $FILES | wc -w`
echo $FILECNT
framp@obelix:~/test$ ./tick.sh
4