« Grain » vient du latin granum (de l'indo-européenne °ger- )*, mot masculin singulier. Le pluriel neutre de granum est grana qui a aussi été employé comme féminin et a donné « graine » en français.
Le grain désigne « le fruit comestible des graminées », il est parfois aussi utilisé pour désigner la semence, c'est-à-dire pour assurer la reproduction de l'espèce.
Graine appartient au champ lexical de la biologie et désigne « la partie des plantes à fleur qui permet d'assurer la reproduction ».
Un grain de blé, qu'on peut consommer, est aussi la graine qui va assurer la reproduction de la plante. Mais je ne pense pas que les deux mots soient toujours interchangeables. Je ne suis pas biologiste mais je soupçonne que tous les grains ne sont pas propices à la reproduction, donc ne seraient pas qualifiés de « graines ». Et une graine d'un végétal non comestible ne peut pas être consommée, donc elle ne sera pas qualifié de grain.
Source : Dictionnaire culturel en langue française (sld Alain Rey)
*A aussi donné le germanique °kurnam (anglais corn, allemand Korn)