I've observed that many math students in those types of elementary classes struggle because they're unable to recognize identities. They get some problem which involves substituting hard parts with easier parts using identities, but don't recognize them. So they try to solve the problem directly, and end up writing pages upon pages, before either getting stuck or doing some error that follows them until they get stuck.
Once they're showed what identities to use, they say "of course, I should have known that!" - but they never put in the time to solve all the problems.
And I was like that, too. I always thought that math would be a nifty because you'd "only" need to learn the various theorems, and if you understood those, then that should have been enough. It didn't really hit me that I'd need to put in hard work solving problem sets until I started recognizing patterns and knowing what to use, and where to use it.
Same goes for those that don't really understand the theory. Lots of math problems later will be of the type "Here's a difficult looking problem, is [statement x] true or false?" - and because they don't understand what math theorem to use, and all its properties, they'll try to brute force it by jumping into calculations.
You see it all the time in calculus, where students are asked to solve some nasty looking integral problem, which is much simpler if you know and use properties regarding symmetry and stuff like that.
I'd say for most people, there's no free lunch when learning math. You'll need to understand it, and you'll have to practice.
There's always going to be some extremely high-IQ individuals that can do pretty advanced math purely by logical deduction - but for the vast majority, it comes down to hard work.