The devil's in the details
They say that a master craftsman knows not only how, but also when to use their tools. Many programmers often enough arrive at the false conclusion that they must constantly write beautiful, efficient, and overall perfect code that will never fail. In practice, this couldn't be farther from the truth. Many find this out the hard way. As Donald Knuth said:
"Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil."
This doesn't mean that one shouldn't take performance into consideration. Things such as designing a class with later features in mind, or even picking the right algorithm for the job both fall under that remaining 3%. Rather...