The difference is that, when you do:
a,b=b,a+b
# ^
the a that I marked is the original value of a, not the updated value. This is because Python always evaluates what is on the right of the = sign before it evaluates what is on the left.
When you do this however:
a=b
b=a+b
the a in the second line is the new value of a that was assigned in the line above. This causes your calculations to be off.
For more information, here is a reference on assignment statements in Python.
To get the same behavior as the function in the Python docs, you would need a temporary variable to save the original value of a:
tmp=a
a=b
b=tmp+b
Below is a demonstration:
>>> def fib2(n):
... a=0
... b=1
... while a<n:
... print a, # The comma causes everything to be printed on one line
... tmp=a
... a=b
... b=tmp+b
...
>>> fib2(2000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
>>>
Of course, doing just:
a,b=b,a+b
is a lot more pythonic. Although I would recommend you put some spaces:
a, b = b, a+b
Readability is everything in Python.