I will shamelessly use the opportunity to talk about the distinction between unrestricted vs bounded quantifiers. I suspect our intuitions favor one or the other in different contexts, causing the confusion.
When quantifiers are introduced in logic courses they're usually unrestricted, which means that the x in ∀x and ∃x ranges over the entirety of the domain of discourse. An alternative is to have bounded quantifiers ∀x ∈ A and ∃x ∈ A for every subset A of the domain of discourse. The confusion might be arising because the universal quantifier in "all dogs are animals" is implicitly taken to be a bounded one:
(1) ∀x ∈ Dogs ( Animal (x) ).
Then, since the standard quantifiers are unrestricted, the thought is to express the same idea with this:
(2)* ∀x ( Dog (x) ∧ Animal (x) ),
where Dog(x) is meant to play the role of specifying the subdomain x is supposed to range over. But as I already mentioned in the comments, (2)* will be true iff the whole domain of discourse consists only of dogs, while (1) will be true in every domain where dogs are animals. The 'solution':
(3) ∀x ( Dog (x) → Animal (x) ),
other than being the right translation for (1) using unrestricted quantifiers, is an instance of a general pattern called guarded quantification, which has the following form:
(Guarded Quantification) ∀x ( φ → ψ ).
The φ acts as a "guard" for ψ, meaning that the truth of ψ is tested only for those x in the domain that satisfy φ. In sum, guarded quantification, of which (3) is an instance, is a method of achieving restricted quantification in a language with only unrestricted quantifiers and an unstratified domain of discourse.