Faits :
A.
A._ est assuré auprès de Visana Services SA pour l'assurance-maladie obligatoire. Par courrier du 28 août 2019, il a requis de la caisse-maladie la prise en charge de deux médicaments prescrits le 22 août précédent par son médecin-dentiste traitant. Il lui demandait, en cas de refus, de rendre une "décision motivée, susceptible de recours et avec les voies de droit". Visana Services SA a envoyé à A._ deux décomptes de prestations, datés des 6 et 7 septembre 2019, selon lesquels les coûts des médicaments (de respectivement 27 fr. 10 et 16 fr. 15) étaient à la charge de l'assuré. Le 13 octobre 2019, celui-ci a contesté les "décisions daté[es]" du 6 et du 7 septembre 2019 et réclamé leur annulation ainsi que le remboursement des médicaments en cause. Répondant le 27 décembre 2019, Visana Services SA a refusé le remboursement des coûts au titre de l'assurance obligatoire des soins, parce que les médicaments en cause avaient été prescrits en lien avec un traitement dentaire qui n'était pas obligatoirement pris en charge par cette assurance.
B.
Par acte du 3 février 2020, A._ a saisi le Tribunal cantonal du canton de Vaud, Cour des assurances sociales, d'un recours contre "la décision de la Visana" du 27 décembre 2019 dont il a demandé l'annulation; il a conclu notamment à la prise en charge des médicaments (par Visana Services SA). Le 10 février 2020, la juridiction cantonale a déclaré le recours irrecevable.
C.
Agissant par la voie du recours en matière de droit public, contre ce jugement dont il demande l'annulation, A._ demande au Tribunal fédéral de rendre lui-même une décision "sur la cause intégrale" et de reconnaître le droit à la prise en charge des médicaments et du traitement dentaire par l'assurance-maladie obligatoire. Le recours est assorti d'une demande d'assistance judiciaire limitée aux frais de procédure.
Visana Services SA et l'Office fédéral de la santé publique ont renoncé à se déterminer.

Considérant en droit :
1.
1.1. Le jugement attaqué constitue une décision d'irrecevabilité, par laquelle la juridiction cantonale n'est pas entrée en matière sur le recours de l'assuré, le qualifiant de prématuré. Dans la mesure où le recourant présente des conclusions liées au fond du litige (prise en charge des médicaments et du traitement dentaire par l'assurance obligatoire des soins) et demande au Tribunal fédéral de statuer lui-même sur son droit au remboursement litigieux ("sur la cause intégrale"), son recours est irrecevable. Pour être admissibles, les conclusions sur le fond supposent que l'autorité précédente soit entrée en matière (<ref-ruling> consid. 1.2 p. 48 et la référence citée), ce qu'elle n'a précisément pas fait en l'espèce.
1.2. Cela étant, il découle également de la motivation du recours, à la lumière de laquelle les conclusions doivent être interprétées (cf. <ref-ruling> consid. 1.3 p. 137), que le recourant, qui n'agit pas par l'entremise d'un avocat, conteste aussi la non-entrée en matière sur son écriture du 3 février 2020. Le recours est donc recevable dans cette mesure.
2.
Seul le bien-fondé de la décision de la juridiction cantonale de ne pas entrer en matière sur l'écriture du recourant du 3 février 2020 est litigieux et doit être examiné.
3.
3.1. Selon l'<ref-law>, l'assureur doit rendre par écrit les décisions qui portent sur des prestations, créances ou injonctions importantes ou avec lesquelles l'intéressé n'est pas d'accord. Les prestations, créances et injonctions qui ne sont pas visées à l'art. 49 al. 1 peuvent être traitées selon une procédure simplifiée (<ref-law>), mais l'intéressé peut exiger qu'une décision soit rendue (<ref-law>).
Les décisions peuvent être attaquées dans les trente jours par voie d'opposition auprès de l'assureur qui les a rendues (<ref-law>) et les décisions sur opposition peuvent faire l'objet d'un recours devant le tribunal cantonal des assurances compétent (art. 56 al. 1 en relation avec les art. 57 al. 1 et 58 al. 1 LPGA).
3.2. En matière d'assurance-maladie obligatoire, les prestations d'assurance sont allouées selon la procédure simplifiée prévue par l'<ref-law> (<ref-law>). Cette règle, qui s'applique également, en dérogation à l'<ref-law>, aux prestations importantes (<ref-law>), ne modifie ni l'obligation de l'assureur-maladie de rendre une décision par écrit en cas de désaccord de l'assuré (prévue par l'<ref-law>), ni le droit de celui-ci d'exiger qu'une décision soit rendue, en vertu de l'<ref-law> (<ref-ruling> consid. 3.3 p. 190).
4.
4.1. La juridiction cantonale a considéré qu'au moment où elle a été saisie, l'intimée n'avait pas rendu de décision sur opposition sujette à recours: le courrier de la caisse-maladie du 27 décembre 2019 ne constituait pas un tel prononcé, mais un acte rendu selon la procédure simplifiée de l'<ref-law>. Aussi, le recours formé devant elle était-il prématuré et l'assuré devait d'abord procéder en la forme prévue par l'<ref-law>.
4.2. Comme le fait valoir à juste titre l'assuré, en le renvoyant à agir en la forme prévue par l'<ref-law>, soit en l'obligeant à exiger de la caisse-maladie qu'elle rende une décision, la juridiction cantonale a appliqué de façon incorrecte les art. 49 et 51 LPGA en relation avec l'<ref-law>.
En l'espèce, le 13 octobre 2019, le recourant a exprimé son désaccord avec les décomptes de prestations des 6 et 7 septembre 2019, par lesquels l'intimée avait indiqué, selon la procédure simplifiée de l'<ref-law>, que les médicaments étaient à sa charge. Compte tenu de ce désaccord, du reste précédé par une demande tendant à ce que la caisse-maladie se prononce par une décision susceptible d'être attaquée en justice en cas de refus (courrier du 28 août 2019), il incombait à la caisse-maladie de rendre une décision conformément aux art. 49 al. 1 et 51 al. 2 LPGA. En réponse, l'intimée a toutefois envoyé un courrier, le 27 décembre 2019, selon lequel elle refusait la prise en charge des coûts au titre de l'assurance-maladie obligatoire et espérait que ses explications contribueraient à clarifier la situation pour l'assuré. La lettre n'était pas intitulée comme décision et n'indiquait pas de voies de droit. Selon la jurisprudence relative à l'<ref-law> (<ref-ruling> consid. 3.2 in fine p. 148), à défaut de réaliser ces exigences, elle ne pouvait pas être considérée comme une décision, quoi qu'en dise le recourant, qui se réfère à une situation où, à la différence d'avec son cas, l'acte qualifié de décision imposait de manière contraignante le paiement d'une prestation d'une somme d'argent à l'Etat (cf. <ref-ruling> consid. 2 p. 163).
A ce stade de la procédure, où il appartenait à la caisse-maladie de se prononcer par une décision formelle au sens de l'<ref-law>, dans un délai de trente jours (<ref-law>), le recours dont a été saisie l'autorité de première instance apparaissait certes prématuré, faute de décision et décision sur opposition, susceptible de recours. Mais la juridiction cantonale ne pouvait pas se contenter de déclarer irrecevable le recours et de renvoyer l'assuré à exiger une nouvelle fois une décision de la part de l'intimée, selon l'<ref-law>, alors qu'il s'était déjà conformé à cette disposition en exprimant son désaccord et en réclamant la décision que la caisse-maladie a manqué de rendre selon les formes prévues. Au vu des circonstances, l'autorité judiciaire de première instance aurait dû considérer le recours de l'assuré comme un recours au sens de l'<ref-law>, selon lequel le recours peut aussi être formé lorsque l'assureur, malgré la demande de l'intéressé, ne rend pas de décision ou de décision sur opposition. Ce recours (pour déni de justice) a précisément pour but d'obtenir une décision de la part de l'assureur social (cf. <ref-ruling> consid. 3.2 p. 190; arrêt 8C_738/2016 du 28 mars 2017 consid. 3.1.1) dans une situation dans laquelle celui-ci est tenu d'en rendre une. Or le recourant était confronté à l'absence de décision de la part de la caisse-maladie qui s'était prononcée à tort de manière informelle et non par le biais d'un prononcé au sens de l'<ref-law>, malgré sa requête dans ce sens (cf. <ref-ruling> consid. 5.1 p. 149; cf. KIESER, ATSG-Kommentar, 4e éd. 2020, ad <ref-law> n° 39).
4.3. En conséquence, la juridiction cantonale aurait été tenue d'entrer en matière sur le recours conformément à l'<ref-law>. Dès lors que la cause est en l'état d'être jugée et que les parties ont eu l'occasion de se déterminer, il y a lieu, par économie de procédure, de réformer directement le jugement cantonal: à ce stade, il appartient à l'intimée de rendre une décision conformément à l'<ref-law>, de sorte que l'autorité de première instance aurait dû admettre le recours dans ce sens. Aussi, la cause doit-elle être renvoyée à l'intimée pour qu'elle se prononce dans les meilleurs délais.
5.
Vu l'issue de la procédure, l'intimée doit supporter les frais y afférents (<ref-law>). Il ne se justifie pas d'octroyer des dépens au recourant, qui n'est pas représenté par un avocat (art. 68 al. 1 et 2 LPGA). Il n'y a pas lieu de modifier la décision entreprise en ce qui concerne les frais et dépens de la procédure cantonale (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis, dans la mesure où il est recevable. La décision du Tribunal cantonal du canton de Vaud, Cour des assurances sociales, du 10 février 2020 est réformée en ce sens que le recours est admis et la cause est renvoyée à Visana Services SA pour qu'elle rende une décision conformément au considérant 4 du présent arrêt.
2.
Les frais judiciaires, arrêtés à 500 fr., sont mis à la charge de l'intimée.
3.
Le présent arrêt est communiqué aux parties, au Tribunal cantonal du canton de Vaud, Cour des assurances sociales, et à l'Office fédéral de la santé publique.
Lucerne, le 18 juin 2020
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
Le Président : Parrino
Le Greffier : Bleicker