This was my very first question here on the forums, and I've learned the answer.
The moment a new block is created, everyone starts looking for the next one.
Pool servers will divide the work up into shares, and start dishing them out to miners like you and me.
When we get a share, we start trying to crack it. Depending on the speed of your CPU/GPU it can be done quickly or slowly.
When we're done our work, we submit the answer to the pool in order to be verified. Here is where the answer for your question lays.
From the time you downloaded your share from the pool, and the time you submit your share to the pool, a couple of things could happen.
- You could finish processing your share before the block is found. Your pool will report "Share accepted" (or "work accepted")
- A new block could have been found by someone else before your work was done. When you try to submit your share, your pool will report "Stale/invalid" because your work belongs to an older block that was already solved.
The slower your miner, the higher the chance is that you will submit a stale share.
Hope that explained it,