A.- S._ travaillait comme maçon au service de l'entreprise de bâtiments et de génie civil D._ SA. A ce titre, il était assuré contre les accidents professionnels et non professionnels auprès de la Caisse nationale suisse d'assurance en cas d'accidents (CNA). Le 7 avril 1989, l'assuré a subi une forte contusion dans la région de l'épaule (ou de l'omoplate) gauche provoquée par le brusque heurt d'une plaque métallique lors du déchargement d'un camion. La CNA a pris en charge le cas, qui a nécessité des séances de physiothérapie mais n'a pas entraîné d'incapacité de travail. Le 23 août 1989, l'assuré a été victime d'un second accident de travail qu'il n'a, semble-t-il, pas annoncé à la CNA : alors qu'il coffrait une dalle en position accroupie, une planche a cogné sa tête, ce qui a nécessité des points de suture. En raison de l'exacerbation de ses douleurs scapulaires, l'assuré a annoncé une rechute à la CNA en mai 1990. Il a alors bénéficié d'un traitement de chiropractie qui est toutefois resté sans effet, si bien que son médecin traitant, la doctoresse B._, l'a mis en arrêt de travail à partir du 15 août 1991. Par la suite, notamment à l'issue d'un séjour passé à la Clinique de médecine rééducative de Z._ (du 22 octobre au 22 novembre 1991), l'assuré a tenté à plusieurs reprises de reprendre le travail sur recommandation médicale, sans succès. Il a également subi de nombreux examens médicaux, qui n'ont pas permis d'objectiver ses douleurs (cf. rapports du 22 juillet 1991 du docteur Y._, neurologue; du 28 novembre 1991 de la Clinique de Z._; du 30 mars 1992 du docteur D._, chirurgien orthopédiste; du 13 avril 1992 de l'Hôpital cantonal de F._; du 5 juin 1992 du docteur X._, spécialiste en chirurgie de la division médicale de la CNA). Par décision du 9 juillet 1992, la CNA a mis fin à ses prestations à compter du 31 juillet 1992, en considérant que l'assuré, du fait des seules suites de l'accident, n'était pas empêché de reprendre le travail. Saisie d'une opposition, la CNA l'a écartée le 23 août 1993, non sans avoir préalablement une nouvelle fois soumis le cas pour appréciation au docteur X._ (cf. son rapport du 9 mars 1993). B.- S._ a recouru contre cette décision devant la Cour des assurances sociales du Tribunal administratif du canton de Fribourg. Il a conclu à l'annulation de la décision sur opposition de la CNA et au maintien des prestations d'assurance au-delà du 31 juillet 1992. La CNA a conclu au rejet du recours. Durant l'instruction du recours, l'assuré a été mis, avec effet au 1er août 1992, au bénéfice d'une rente entière de l'assurance-invalidité, qui a notamment fondé sa décision (du 14 juillet 1994) sur un rapport d'expertise psychiatrique établi le 26 mai 1994 par le docteur M._. Le tribunal a mis en oeuvre une expertise médicale qu'il a confiée au docteur H._, médecin-chef au département de chirurgie de l'Hôpital cantonal de G._. Dans un rapport du 13 février 1998, l'expert s'est exprimé comme suit à propos de la capacité de travail de l'assuré : «Une capacité théorique de travail de 50 % est certainement exigible mais cette capacité ne pourra pas être obtenue tant que l'état psychique, causé par la douleur secondaire, que ressent M. S._ suite à son accident, soit amélioré. En l'état actuel des choses, et selon mon examen clinique et mon anamnèse, je ne vois pas comment on peut exiger de M. S._ un travail adapté». Après avoir pris connaissance de cette expertise, la CNA en a contesté les conclusions (rapport du docteur Stutz du 9 mars 1998) et a persisté dans ses conclusions. Par jugement du 20 mai 1999, le tribunal a admis le recours de l'assuré, en ce sens qu'elle a annulé la décision sur opposition de la CNA et renvoyé la cause à cette dernière pour fixation des prestations dues depuis le 31 juillet 1992. En bref, les juges ont considéré, en se fondant sur l'expertise du docteur H._, que les atteintes à la santé (physique et psychique) de l'assuré et l'incapacité de travail en résultant étaient dans un rapport de causalité naturelle et adéquat avec ses accidents des 7 avril et 23 août 1989. C.- La CNA interjette recours de droit administratif contre ce jugement, en concluant à son annulation. L'assuré conclut au rejet du recours sous suite de dépens, tandis que l'office fédéral des assurances sociales ne s'est pas déterminé. 