It may be because the image is being served from Google's server rather than your server in the image preview. Let me give you an example.
I did a Google image search for "scenery". I changed the search tools to only look for "large" images, and I found this:

As you can see it is shown in very poor quality with obvious JPEG artifacts in the sky around the clouds. Unlike other images in the page, it was not swapped out by my browser (Chrome) for a better quality image. This appears to be because the image URL used in this large preview is: https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQMlmFajhgytLiLaTr330wB4LNOFcWcKW5Pb71QpWDAGdOzUh3P
which is a small thumbnail from Google's server. Other images in the search results use the site to power the preview. For example the Image next to it uses the preview image of http://www.hdwallpapersart.com/wp-content/uploads/2013/04/Scenery.jpg
.
In this particular case Google may be doing this because the site in question has some type of hotlinking protection in place. They are using redirects when you link directly from the image url.
- When I paste
http://wallpaperswide.com/download/summer_scenery-wallpaper-2048x1536.jpg
into my browser, it shows me an HTML page of http://wallpaperswide.com/summer_scenery-wallpapers.html
instead. I can than click on the links and the images save as downloads.
- When I use
curl
, I get a 302 redirect to /summer_scenery-wallpapers.html
- When I use
wget
I get the redirect to the same page, but then wget is able to download the image data from the html
page and save it as a .jpg
Based on this investigation, it appears that Google has some algorithms in place to detect that images won't work (or might not work) when hot linked in the image preview. In such cases, it uses a lower quality thumbnail served from its own servers in place.
EDIT: On May 4, 2015 Google announced that they fixed a bug that was causing images to look low quality and blurry in search results. Hopefully this will no longer be an issue.