Other answers already indicate where the error comes from and show a very compact and elegant "standard" definition of Fibonacci numbers in Haskell. Here is another way to define it, which may be more friendly for beginners:
fibs = map fst $ iterate next (0,1) where next (x,y) = (y,x+y)
The idea is to track not only the last, but also the last two Fibonacci numbers that can be made using pairs. Using this tricks is very easy to determine the recursive ratio.
We start with argument (0,1) and generate a list from this initial value using the next function on ond again: [(0,1),(1,1),(1,2),(2,3),(3,5)...] . Then it remains only to "discard" the second argument of the pairs that map fst $ ... .
[Update]
Another nice definition (working similarly to zipWith-Version):
fibs = 0 : scanl (+) 1 fibs
source share