Вариант «по грибы» закрепился в современном русском языке благодаря народному эпосу. Но с точки зрения грамматики так говорить неправильно.
Владимир Даль в своем толковом словаре упоминает выражение «ходить по грибы» (С долею по грибы; По грибы не час, и по ягоды нет, так хоть по сосновы шишки). Однако лингвисты считают, что словарь живого великорусского фиксирует не орфографические нормы, а устаревшую народную лексику. Но русский язык сильно изменился.
Вариант «по грибы» закрепился в современном употреблении благодаря поговоркам (счастливому по грибы ходить; с кем по грибки, с тем и по ягодки). Но с точки зрения грамматики он не верный. Сегодня предлог «по», в основном, употребляется, когда что-то или кто-то передвигается по поверхности — плыть по морю, ехать по шоссе, ходить по комнате, идти по лесу.
«Предлог "по" в значении "за" (по воду, по грибы, по ягоды) имеет очень ограниченную сферу употребления и является разговорным, — объясняют эксперты справочно-информационного портала "Грамота.ру". — Вариант за водой, за грибами общеупотребительный и стилистически нейтральный, вариант по воду, по грибы уместен в разговорной, в народно-поэтической речи».
Есть мнение, что варианты «по грибы», «по ягоды», «по воду» появились из-за суеверий предков. Они верили, что слова могли стать пророчеством: «пойти за грибами» означало заблудиться, буквально — идти по лесу, следуя за грибами, за ягодами. Воду набирали в реках и «пойти за водой» означало пойти по течению реки, то есть, утонуть.
Согласно современным грамматическим нормам, правильно говорить — «за грибами».
Источники: