The biggest reason that makes such big price difference is the lack of casino. That's it. Every other cruise line has a casino, but not
DCL. The revenue from Bingo on DCL is very small compared to the revenue other cruise lines generate from having a casino. DCL is no more greedy than other cruise lines. Their business model is different, that's all. I live in a state with casinos, and they just run things differently from other places of business. You personally may never set a foot in the ship casino, but your fellow travelers are dropping enough money on your behalf to make up the revenue as a whole. With other cruise lines, they are competing to get enough passengers on the ship to get enough revenue from the casinos, whereas DCL is simply charging all the passengers up front. Neither business model is evil nor unethical, just different.
Now, even if DCL added a casino to their ship, their fares will still be slightly higher, because of the Disney premium. By that, I mean, the unique experience that DCL MUST provide. Think about it. the crew members cannot be just courteous and helpful. They have to be cast members. They all have to be trained in Disney lingos, Disney way of service, and above all, you can't have someone who doesn't know the difference between Goofy and Pluto. You can't just have "a princess" on the ship - kids want to see Cinderella be Cinderella, Anna and Elsa be Anna and Elsa, and Tinker Bell to be Tinker Bell. Those training to be "friends with princesses and other characters" cost extra on DCL.
So if you're the kind of person who hates gambling and do not care so much for the Disney characters and Disney experience, I see no reason why you would choose DCL above other cruise lines. But there is a legitimate reason for DCL fares to be significantly more than other cruise lines, and I don't think it's fair to criticize them as if they are being unreasonable. We all have to choose if that Disney experience is worth the extra money or not.