I use dreams fairly frequently (as in maybe once ever 8 sessions or so?) Primarily for two purposes:
1) They're one of my preferred methods by which spirits or deities communicate with clerics, paladins, druids, warlocks, or other character with a strong supernatural connection. Directly talking to a such an entity tends to...cheapen the experience to me? Or make it seem less dramatic. (There are other suitable means of communication as well, I meant one of when I said one of).
2) As sort of a counterbalance to warn the PCs when they mess with forces beyond their capabilities. I try to run game worlds with powerful factions like deities, nations, religions, secret societies, guilds, powerful monsters, god-like heroes who are not (yet) the PCs. These entities have their own motives and defined means - which are frequently NOT fully understood by the PCs; and are likely to curbstomp those who approach them in the wrong way or say the wrong thing. I feel this makes for a more realistic game world...but it occasionally also puts the PCs in danger that stems not from poor tactical choices or general recklessnes, but because they simply don't know any better. Dreams are one of the methods I convey information to prevent arbitrary deaths.
I try to keep dream sequences as brief as possible; provide just enough clues to let the players figure things out for themselves; and allow PC interaction if possible. Because dreams are essentially DM exposition where the player has limited ability to decide things for themselves; and that's not fun.