The reason is that thumbnails are generated asynchronously and the thumbnail rendition must first be requested. The way to do that is to append "?c=queue" to your URL.
If you want to make sure that you always get a placeholder thumbnail back when an actual thumbnail doesn't exist, append "&ph=true" to your URL.