Chess engines are, in my opinion, not suitable for novice players to use for the purpose of learning chess. And the reason for my opinion is very simple: chess engines are not designed to teach chess! If that doesn't suffice as an answer, I will try to explain my views in a more detailed manner below.
Chess engines are designed to be able to evaluate any given position as accurately as possible, and using these evaluations to try and come up with an optimal sequence of moves for both sides should the game progress.
In order to evaluate positions, chess engines assign positions with a numerical value based on things such as material, king safety, etc. But the engine will never explain what positional factors were the most important ones leading to a given score of a position. This is the key as to why any chess player should use engines with caution, and treat the engine with some level of scepticism.
The chess engines are very good at what they are supposed to do; in fact, they are so good at evaluating most positions nowadays that the leading chess engines cannot be beaten by humans. This makes it very difficult to reject the computer's evaluation even if one is not sure why the computer engine evaluates a position in a seemingly strange way, or why it favours a strange-looking high-risk continuation when there are much simpler ways of bringing a game to its logical conclusion.
Here is a typical mistake people tend to make in the type of scenario described above: they just trust the computer, no questions asked, and move on. This way these players will not only learn nothing of substance, but there is an added risk of the players thinking that they actually gained some insight even though they didn't understand a thing!
That last part, about people thinking that they learned something when in fact they didn't, is not an exaggeration. This happens to people all the time in many different setting, and it has to do with how people learn in general.
In academia, the terms "Deep learning" and "Surface learning" are used to describe two very different learning approaches used by students to pass courses:
Surface learning has to do with trying to pass a course by learning the presented information with minimal effort. This often means that the student will try to memorize facts without a hint of reflection.
Deep learning has to do with considering the course contents important in some way, which drives the student to make a real effort to learn and understand the contents of a course.
For a more detailed (and in my opinion better) description of these terms, see the first few paragraphs of the following article:
Facilitation of Critical Thinking and Deep Cognitive Processing
by Structured Discussion Board Activities.
Since surface learning emphasizes on learning facts and definition, but not on actually understanding why something is true or not, it can often leave students with a severely limited ability to apply the facts learned.
In the context of learning chess, surface learning would be regarded as memorizing specific opening variations by heart, or learning positional guidelines such as "a knight on the rim is dim" without concerning oneself with the reasons behind the variations and guidelines. I think that most people would agree that this approach to learning chess would not be very successful in the long run.
Chess is a game heavily dependent on the player's ability to calculate and evaluate positions on-the-fly. There are simply too many positions to memorize, and if your opponent sidesteps any variations you may have memorized you are on your own for the rest of the game. You need to be able to judge when to side with common guidelines and when to deviate from them. And learning to play chess well is connected with cultivating these abilities by trying to understand the moves in certain variations, and why certain guidelines are formulated as they are. This is clearly more in line with the deep learning approach than the surface learning approach.
Tying this back to chess engines: using chess engines to learn chess is dangerous, since it can very easily turn into the player using surface learning approaches to learn chess. The computer only gives a numerical evaluation and optimal variations, which can easily trap the player into thinking something along the lines of "Huh! The computer says that I was winning here, if I just played the given computer line. Instead, after my move, I was losing, if my opponent just had played the given computer line. I'll remember that for next time!" without reflecting much further. The player may have learned something, but will this new knowledge help the player improve their game in any meaningful way?
With all this being said, I still think that chess engines can be used to learn chess. But it requires that the player is careful, and ready to put in a lot of effort. The player should strive to go for a mindset along the lines of "Oh I see Stockfish, you think this position is _______ huh? You silly goose, I'm going to show you just how wrong you are!" as soon as you're uncertain why the computer evaluates a position the way it does. This way you can try to force the engine to explain itself in some sense, instead of just listening to it blindly. But this is very difficult and time-consuming for a novice player to do, and I believe learning about tactics, making plans etc. is more effective for players relatively new to the game wishing to improve.