The 36-year-old German said he realised in last week's season-opening race that he was no longer able to compete at the highest level.
Greis finished 67th in the 20km race at Oestersund, Sweden, the second-worst result in his 13-year career, which took in 265 races.
He told Eurosport: "For me, the 20k race in Ostersund was over before it had even begun.
"Already on the first loop I felt 'Hey Michi, there’s something missing here. And that’s something essential.' There was nothing left of fighting spirit and the punch which always characterized me as an athlete and made me successful.
"I felt nothing but an emptiness inside and I realised it was going to be my last race. I knew I had reached the final straight of my career."
Greis dominated the sport in the middle of the last decade, claiming three gold medals in the 20km individual, 15km mass start and 4x7.5km relay at the 2006 Winter Olympics in Turin.
He won three World Championship titles and the 2006/07 overall World Cup title.