True, "φίλαθλος" can only refer to sports, whereas "οπαδός" could refer to other stuff as well. But you could say there is another difference.
"Φίλαθλος" is someone who likes, who loves, who's a "friend" (φίλαθλος = φίλος + άθλος) of a sport (or the team, but mostly the sport itself).
"Οπαδός" is someone who likes or loves the actual team, not necessarily the sport. Team comes before the sport for them.
I hope I helped you enough^.^