Il y a de fortes chances que votre displayWinesList() la fonction echo renvoie ses données au lieu de les renvoyer.
Vous pouvez soit modifier votre fonction pour renvoyer les données, soit la laisser telle quelle et utiliser la mise en mémoire tampon de sortie pour capturer les données :
$to = "example@sqldat.com";
$subject = "WineStore Query";
ob_start();
displayWinesList($connection, $query,$region_name, $wine_type, $price);
$message = ob_get_clean();
$message = '<html>'.$message.'</html>';
$from = "example@sqldat.com";
…
Pour en être certain, merci de poster votre displayWinesList() fonction.