Listed below should be all reasons why a Pokemon didn't evolve in a situation where you believe that it should. Make sure you double check that you have met the requirements necessary to evolve the Pokemon in question. If you believe anything has been missed, I suggest that you make a comment on this answer with said missing information so it can be added.
Your Pokemon is holding an Everstone. This is a very common issue. Your Pokemon will not evolve through level-up or trade if it is holding an Everstone.
Your Pokemon hasn't reached the requisite level of friendship for evolution. Some Pokemon require high friendship to evolve. If you have one of these Pokemon, you need to raise its friendship level to at least 220 points to evolve it. Methods of raising friendship, and guides on how to approximate your Pokemon's friendship, can be found in this Bulbapedia article. Even if your Pokemon is level 50 and 'definitely should have evolved by now!' the answer is you need to raise its friendship more.
Your Pokemon has not reached the level required to evolve. Check Pokedex pages online to clarify what level your Pokemon will evolve at. If you accidentally cancelled evolution at this level, rest assured your Pokemon will attempt to evolve again if you level it up once more.
You're using the item for evolving your Pokemon improperly. If your Pokemon requires an item to evolve, please check the list below to ensure that you're using it correctly.
- If the Pokemon needs to have a Fire, Water, Thunder, Leaf, Moon, Sun Shiny, Dusk, Dawn, or Ice Stone used on it in order to evolve, make sure that you're selecting the correct stone in the bag, pressing "use" and selecting the Pokemon you want to use it on. Evolutionary stones don't work when you just give the Pokemon the stone as a held item.
- If the Pokemon requires a Deep Sea Scale, Deep Sea Tooth, Dragon Scale, Dubious Disc, Electirizer, KIng's Rock, Magmarizer, Metal Coat, Prism Scale, Protector, Reaper Cloth, Sachet, Up-Grade, or Whipped Dream in order to evolve, make sure that you're giving it to the Pokemon (not trying to use it on the Pokemon in the same fashion that you would use an evolutionary stone) as a held item and trading the Pokemon.
- If the Pokemon requires an Oval Stone, Razor Claw, or Razor Fang, make sure that the Pokemon is holding it as a held item and you're leveling it up during the right time of day.
Sinistea has two different forms that use two very similar items to evolve. The Phony Form requires the Cracked Pot item, while the Antique Form requires the Chipped Pot.
You're not leveling up your Pokemon at the right time of day. Some Pokemon will only evolve if leveled up to a certain level or higher during a certain time of the day. A list of these can be found here. Make sure to level up your Pokemon at the right time of day and up to (or past) the correct level. A list of what times are considered day and what times are considered night can be found here.
You recently changed the system time, and then attempted a time-bound evolution. If you have a Pokemon with a time-based evolution, wait until the required time of day occurs naturally. Changing your system time disables time-based events for 24 hours, so don't do that to accelerate evolution.
Your Pokemon is in the Daycare or at a Pokejob. Pokemon will not evolve if they are leveled up to or past the level they require to evolve if they are in the Daycare or at a Pokejob. Leveling them up again through battle or candies should trigger the evolution.
Your Pokemon is knocked out. In Gen 1 - Gen 5 games, (Red, Blue, Green, Yellow, Gold, Silver, Crystal, Ruby, Sapphire, Emerald, FireRed, LeafGreen, Diamond, Pearl, Platinum, HeartGold, SoulSilver, Black, White, Black 2, and White 2) a Pokemon will not evolve if the battle ends and it is knocked out, even if it did hit the level that it can start evolving on.
You pressed the B button. This is unlikely, but if you've met all of the requirements for a Pokemon to evolve and it starts evolving, you, out of pure excitement, start mashing your face into the system so hard that your teeth come out and one happens to hit the B button, (it happened to my cousin Mikey, he said so) your Pokemon will stop evolving. Your Pokemon will evolve again if you just do whatever you need to do to evolve it again, so it's not that big of a deal.
Your Pokemon does not have the correct move to evolve. Some Pokemon require having a certain move in their moveset and being leveled up in order to evolve. (list) Make sure that the Pokemon has the correct move, then level it up.
Your Pokemon isn't in the right location to evolve. Some Pokemon require being in a certain location, then being leveled up in that location. (list) The most common of these locations are areas with a magnetic field. (list) The other locations are the Moss Rock, Ice Rock, and Mount Lanakila. As of Sword and Shield, the Pokemon that are still in the game that previously used this method of evolution now require the use of evolutionary stones to evolve.
Your Pokemon isn't the correct gender. Combee and Salandit both must be female in order to evolve.
Other reasons are listed below:
- Eevee evolves into Sylveon when it levels up if it knows a Fairy-type move and has at least two levels of Affection. Affection is not the same as friendship points.
- Mantyke evolves into Mantine when it levels up if there is a Remoraid in the player's party.
Feebas evolves into Milotic when it levels up if its Beauty condition is 170 or above. From Generation V onward, it can also evolve when traded holding a Prism Scale.
- When Nincada evolves into Ninjask at level 20, if there is an empty slot in the party, a Shedinja will appear. From Generation IV onward, the player must also have a spare standard Poké Ball in their Bag.
- Pancham evolves into Pangoro starting at level 32 if there is a Dark-type Pokémon in the user's party.
- Inkay evolves into Malamar starting at level 30 while the Nintendo 3DS system is held upside-down.
- Sliggoo evolves into Goodra starting at level 50 if it is raining in the overworld. Rain caused by Rain Dance or Drizzle will not trigger the evolution.
Pokémon whose evolved forms are known in-game but not in its regional Pokédex will fail to evolve, even if the conditions have been met. For example, in Pokémon FireRed and LeafGreen, Chansey will fail to evolve into Blissey, a Pokémon that was already known, unless the National Pokédex is obtained.
- Galarian Farfetch'd evolves into Sirfetch'd after it lands three critical hits in a single battle.
- Galarian Yamask evolves into Runerigus when the player travels through the stone gate in the Dusty Bowl after it has lost 49 HP or more from a single attack without fainting.
- Milcery evolves into Alcremie when the player performs a Victory Pose while Milcery holds a Sweet. Unless Milcery is Shiny, Alcremie's color depends on the time of day, the length of the spin, and the direction of the spin; if Milcery is Shiny, Alcremie takes on its sole Shiny coloration. Alcremie's Sweet corresponds to the Sweet Milcery held.
Rockruff will not evolve into Midday Lycanroc in Pokemon Moon and will not evolve into Midnight Lycanroc in Pokemon Sun. Only an Own Tempo Rockruff can evolve into Dusk Lycanroc.
It's also worth nothing that, especially in the more recent games, you should only conclude that a Pokemon will not evolve due to a glitch if you are 100% certain that you are doing everything right. Make sure that everything is being done properly, make sure that your game isn't a fake copy, etc. Check everything.
Sources: This, this, this, this, this, this, and this.
If this answer has missed anything, it's very likely that it is mentioned in this Bulbapedia article.
If you can't find any information about why your Pokemon isn't evolving in this answer, any of the sources listed above, the previously mentioned article, leave a comment on this answer wit as much information as possible. Somebody will respond as soon as possible and try to help you figure out what the issue is. Any new information will be added to this answer.