Well, first off that would hinge on your definition of "design" as to be frank (something I specialize in) what people call "web design" IS NOT DESIGN, it's graphic arts.
DESIGN involves specifications, guidelines, limitations of the medium -- all things your typical PSD jockey spanking their crank on a graphics tablet are utterly and completely ignorant of. DESIGN is ENGINEERING that incorporates art as a small part of the larger whole, not art unto and of just itself! Hence why most "front end developers" know WAY more about ACTUAL design than the alleged "designer" does.
That lack of understanding fueling people starting out building a page worrying about what it's going to look like before you've even settled on what the content is going to be? Might PARTLY be to blame... unfortunately that's probably NOT what you were referring to as you probably meant it from the delusional "Art is design" standpoint.
But really the background of design or art isn't the problem. I see two major issues we can point the finger at.
1) The W3C Specification itself! Not so much what it says, but how it says it as the "specification" is written NOT for people writing websites, but for people writing BROWSERS! It is filled to the brim with esoteric terms even my robust vocabulary stumbles over, almost as if it were written by a lawyer in Finnish, translated to Japanese by a Russian, then Google translated back to Engrish moist goodry me love you long time. Whilst the CSS specification isn't as bad as the HTML one on that front -- where EMPTY doesn't even mean it doesn't contain something -- now that with the mind-numbingly idiotic dumbass HTML 5 shoveling it all under one umbrella as one specification, it has gotten precipitously worse!
It leaves us at the mercy of third party tutorials to learn to do anything, and with nube-predating scam-bait outhouses like W3Fools in the mix teaching nothing but bad habits, incorrect information, and one serious case of web-rot? Good luck with that!
Friends don't let friends use W3Schools. MDN or GTFO.
2) A lack of understanding HTML! There's an old saying:
CSS is only as good as the HTML it is applied to.
... and in that department modern developers are failing MISERABLY; to the point that honestly we might as well go back to using HTML 3.2 and forgetting CSS even existed. Simply put MOST developers still have their craniums wedged up 1997's rectum, and all the people who never embraced 4 Strict and spent a decade or more slopping 4 tranny atop their document, now just wrap 5's lip-service around the same outdated outmoded broken "browser wars" mentality code.
There simply isn't enough emphasis put on semantic markup, separation of presentation from content, and progressive enhancement. People STILL choose their HTML tags based more on what they want things to look like than what the tags MEAN -- making all such sites harder to use for people on screen readers (software that reads the page aloud), braille readers, and of course SEARCH ENGINES. Search engines do not have eyeballs, they could give a flying purple fish about your damned layout, colours, animations, or presentational images!
HTML 5 sure as the hell hasn't improved this situation; particularly so far as logical document structure is concerned. HTML is based on simple grammatical structure. A H1 is the heading that EVERYTHING on EVERY page of the site is part of. An H2 is the start of a major subsection of the page. An H3 is the start of a subsection of the H2 preceding it. An H4 is the start of a subsection of the H3 preceding it. Care to guess what H5 and H6 means? HR means a change in section/topic/subject where heading text is unwanted/unwarranted.
But do people use them that way? No, they just slop them in because "I want bold text in XXX size". DERP. 100% grade A herpa-huffing-derp! That's why when you see H1+h2 for title and tagline, that's gibberish. That's why when you see H5 on a page with no H4 preceding it, that's gibberish.
... and of course since all those tags indicate the start of sections and subsections, as well as provide a means for skipping past navigation to the content (the first H2 or HR most likely) what the *** purpose does the new ALLEGEDLY semantic SECTION, ARTICLE, NAV, HEADER, FOOTER, or MAIN serve other than ACTIVELY PROMOTING CODE BLOAT WHERE PEOPLE WERE ALREADY ABUSING "DIV FOR NOTHING"?!?
Hence:
If you choose your tags for their default appearance, you are choosing all the wrong tags for all the wrong reasons.
You combine that with the "CSS is only as good as the HTML it is applied to" mantra then of COURSE people have trouble learning CSS.
It only gets worse when concepts like the DOM and how elements "nest" (much less the RULES of what tags are valid inside which) aren't covered at all, resulting in this outright dumbass practice of slapping multiple classes on everything. That numbskullery like OOCSS and outright nube predating snake oil like bootcrap inherently works via said methodology, it's hardly a shock people are sleazing out two to six times the HTML they need to do the job, then end up in specificity hell using the document inspector.
THEN said scams taking advantage of the ignorant have the giant brass donkey balls to magically claim they are "easier" than the simpler technology on which they are based, DUPING nubes and rubes into starting there instead of with CSS itself?
OF COURSE people are being led astray and having a hard time of it... but don't you dare say that on many of the web development forums where they have their lips firmly planted on bootcrap and turdpress' tuchas; you'll be shown the door faster than a atheist at a cult meeting.