A number of users are complaining that Battle.net is not doing a good job of tracking achievements.
One suggested fix is that the user reconnect. This sometimes helps the system find it. Otherwise, you have to be playing the games on Battle.net as opposed to just being connected to Battle.net and playing them via the single player option.
Those playing custom scenarios may want to try the following:
Go into multi-player and set up a game player 2 was AI (medium in this case) and after defeating it, I now show progress in this achievement
Yeah, you need to be connected and logged into BattleNet to get the achievements, can’t get them offline or as “guest”
Note that using cheat codes will obviously disable achievements during the round in which they are used.