They are a rendering trick to make a surface appear to have details that aren’t actually modeled in the polygons. In your screen shot, the small, grainy/bumpy texture on the snow is simulated by using a normal map. They are a better/more convincing version of the old “bump map”.