Why do people buy them when they would be cheap to make for themselves? Convenience. While you could easily find some pictures and lay them out with a sentiment, buy some card stock, print in colour, trim it, and perhaps glue on some glitter or whatnot, and then find an envelope that fits it, it's likely to take you an hour or more to do so. And you'll invest far more than $6 on your printer and various inventories.
I made cards for my kids- we had construction paper, glitter, coloured markers etc and there was no need for an envelope. But most people will find it quicker and simpler to buy one fully assembled. The cost of the online ones is weird I agree. Perhaps people are also not confident they can compose a good greeting?
Why do stores stock $6 cards that they buy for $3 (retail markup is 50-100% and I'm sure it's closer to 100% for cards) when a different supplier might provide them for $2? Well, even if such a supplier existed, I'm sure the store would be happy to sell for $6 still (see: people buy them) so there would be no consumer impact. A store that sells cards for $5 isn't going to siphon customers from elsewhere because most of us just don't buy cards often enough for it to matter.
Why does nobody become that supplier who will sell them cheaper? Selling stuff is more expensive than making stuff, and getting your product into retail stores is hard. Hard means time and time means money and all of that contributes more to the card price than the ink and paper do. That said, dollar stores sell cards, for a dollar typically, and people do buy them. I find they have less colours and the artwork is cruder. Perhaps you even get what you pay for when it comes to design, layout, printing etc.