While both recipients of grey and red shirts attend classes at a
school before participating in football games, the difference is in
the player-to-be’s time of enrollment:

Via John Mackovic of The Desert Sun: “Grey shirt is a term used to
designate an incoming freshman who waits until the second semester
to enroll rather than the fall. College athletes
are allowed a five year calendar to play four seasons. The calendar
begins once one is enrolled. By waiting until the spring to start
college, a player will be playing his last season in the sixth year
after high school rather than the fifth. ”
In contrast, infoplease.com explains that “When a player is
given the “red-shirt” designation by his or her coach, that means
he or she has participated in a college’s academic year, but did
not participate during that year’s sports season. Most likely a
“red-shirt freshman” in college football is a sophomore in college
who practiced with the team his first year, but did not play in any
games (at the coach’s request), or was seriously injured during his
first season.” By redshirting, a player gains an opportunity to
learn schemes and techniques, rehabilitate an injury, learn a new
position and/or physically develop without losing a year of
eligibility.