bash + Unix utilities, 43 bytes (45-2)
dc -e9k5v1+2/z^5v/.5+0k1/p;sed -i s/z/z1+/ $0
The first time this is run, it uses dc to compute the 1st Fibonacci number via the Binet formula. Each call to sed modifies the program by changing the string passed to dc; this change tells dc to add an additional 1 to the exponent in the formula, which causes it to compute the next number in the Fibonacci sequence each time.
Test
> for k in {1..10}
> do
> ./fib
> done
1
1
2
3
5
8
13
21
34
55
AtTo illustrate how it works, at this point, after the 55 is printed, the program has been modified to read:
dc -e9k5v1+2/z1+1+1+1+1+1+1+1+1+1+^5v/.5+0k1/p;sed -i s/z/z1+/ $0
so running it again yields
> ./fib
89
and the program now reads:
dc -e9k5v1+2/z1+1+1+1+1+1+1+1+1+1+1+^5v/.5+0k1/p;sed -i s/z/z1+/ $0