Haskell most definitely supports loops:
ghci> :{
ghci| for_ [1 .. 10] $ \i ->
ghci| print i
ghci| :}
1
2
3
4
5
6
7
8
9
10
It doesn't require loops to be implemented at the language level, however. The language is rich enough to support user-defined loop constructs.