Why does the "evolve" button sometimes show only a silhouette?
Based on the information provided in this thread, it appears that the silhouettes are due to the recent gender split in the Pokédex. If you don't have both genders of an evolved Pokémon, the evolution icon to that Pokémon will be a silhouette until you have gotten both.
In fact, looking through my own Pokédex, it even seems as though the silhouette is for any Pokémon you haven't caught/evolved since the update. For instance, I have 2 Sandslash, but both genders are shown as silhouettes:
Update if the gender isn't registered in your Pokedex then it will show a silhouette. Example male Dragonair shows Dragonite, female shows the Silhouette.
If you are looking at a MALE and have evolved a MALE - then the silhouette is now a colour image of the Pokemon
If you are looking at a FEMALE and have not evolved a FEMALE - then the silhouette is still a silhouette
or vice versa
Luckily, I had the perfect group of Sandshrew to test with (2 males, 1 female, and exactly 50 Sandshrew candy), so I evolved one of the males to see how it affected silhouettes. It appears that until you evolve one after the update, the evolution icon will display a silhouette. Furthermore, the silhouette is, indeed, gender-based.
In addition to Vemonus's answer, the button (as of April 20th, 2017) doesn't show evolved Pokemon, even if you have evolved one of their gender, if you evolved it before the button image was introduced.
Here's an example from my Pokemon.