I have been trying to find any source online that states it explicitly with no luck. If you award players with achievements as soon as the criteria is unlocked, then you can play around with the actual criteria to make for more or less flexible achievements.
For instance, is not the same "Burn 10 enemies to death" to "Complete the level burning 10 enemies to death". Also other achievements, in nature, require players to complete the whole mission, such as "Complete the level without getting hit".
In any case bear in mind that achievement hunters will take the most efficient way to get an achievement. For the burning enemies example, in the first case they will leave the level as soon as they meet their objective, which of course is much less challenging that having to complete the entire level, but at the same time is less frustrating.
Just to give you an idea, here are two examples that work different ways.
I have played some platformer and FPS games where secrets which are scattered through levels are awarded as soon as found, independently of finishing the level or not. This is pretty handy as you can play the entire level just once for completion, and then replay it several times to find the hidden secrets. This makes less boring and frustrating having to play the same missions again and again, as you only explore parts of the level you didn't before.
On the other hand, Starcraft II has level specific achievements that always require you to complete the level. This makes the system more challenging as you need to complete the level AND meet a certain criteria for the achievement, but is also more rewarding as probably it would be too easy otherwise.
In any case I recommend you to read this achievement guide by Greg from Kongregate, and decide which model suits better your game (replaying levels again and again will be fun or will feel like a dull chore?).