The following is an oversimplification, but it's pretty close:
Because there are so many pages on the internet, it is not possible to even store all of them on one server. To get around this, Google has many thousands of crawlers that all crawl the web and store their findings to servers. That means that the pages returned for your query are scattered over thousands of servers, and that (if multiple crawlers got to the same page) the same page will be on many servers.
When you make your query, Google asks its servers how many pages they have that match. But because there are so many servers, it doesn't have time to look at the exact results from each one. So it gets the top ten results and has them just send back a number for how many more they have.
This means that if server #1 has page A, and server #10 also has page A, Google reports that as two results. Or if 10,000 servers have page A, Google reports that as 10,000 results! These "fake" results go away when you click to see more results, because when it presents the ten detailed results to you, Google does make sure that there are no duplicates.
Hope this explanation makes a bit of sense.
I'm not sure I understand your second question. Google "dedupes" links by default, so it shouldn't ever show the same link twice in the same result.