What makes it dirty is the fact that for a small MVP I won't write any tests at all, I won't bother to build a real API or micro-services or a fancy single-page-app client. I'll just build a simple monolithic MVC in an out-of-the-box framework. I won't worry about scalability, in fact I'll make choices that I know won't scale at all. It's all about cranking out code as quickly as possible. Yeah it ends up being ugly spagetti, but 99% of the time, nobody will ever see it, and I'll throw it away soon after. (If the project does get traction though, I'll start over and build it from scratch the right way).
And no, for me, educational projects are usually open-source (i'll join a project or start one of my own if I want to get more experience in a certain area). So those projects are more likely to be libraries or utilities or helper-classes, not fully fledged businesses. So it's unlikely they'd ever even be monetizable.