Because Google don't just have 1 big server like you imagine, they have many thousands of small linux servers all doing the work.
You connect now you connect to linux server 11032
You connect 20 minutes later you get linux server 2392
3 hours later you get linux server 7122
All of them have different versions of the algo - ie your rankings - changes ripple out slowly across all servers, not all at once.
So from your perspective your website is bouncing around or "dancing" when in reality what you're really seeing is a different data set from a different server each time you search.
It's all a bit Albert Einstein - that is it's all relative to the viewpoint of the observer.