The idea of 'clean code' is a nice one... we can write code in a 'clean' way? Perfect — why wouldn't we want that? It's the same as the 'democratic' part of the Democratic People's Republic of Korea, or the 'patriot' part of the Patriot Act. They're phrases that sound nice but are massively misleading, oversimplified, and — in the case of clean code — just plain wrong.
Uncle Bob and the clean code movement
Uncle Bob is a programmer, let's get this out of the way. The reason I say clean code is an example of an idea pushed primarily by non-programmers is because it's almost entirely pushed by management. I've maybe come across one or two programmers who have ever mentioned Uncle Bob or clean code.
Clean code is like Marxism: the diagnosis is mostly correct, but the solution is wrong
It's easy to point out things that are wrong with the way people do things. Coming up with good solutions is the hard part. Once you have to consider third-, fourth-, n-th-order effects, most 'solutions' fall apart.
Great in theory, terrible in practice
Not to keep harping on the Marxism reference — it would be hilarious if people read this article as clean code == Marxism. But the point is that clean code is a great idea in theory, yet in practice it falls apart.
You cannot plan a project out in full
You don't know the edge cases that will come up.
Theory is miles and miles away from practice
Unit tests are useless if you're doing integration tests
I said it, arrest me. Integration contains units — if you're testing the integration, you're testing the units.

