Let's solve a simpler problem "by-hand" using the zpk format to see what's happening.
Define the plant model:
We want to find the closed loop transfer function H = G/(1 + G)
After clearing the fractions H = G/(1 + G) will end up with (s+2)(s+3) in both the numerator and denominator of H
Now, if you're doing this by hand, you would probalby decide to cancel the common terms in the numerator and denominator, but Matlab won't do that unless you tell it to do so, using a function like minreal().
The feedback() function works differently and does not result in the apparent, common pole/zero pairs that result from the algebraic manipulations
which is the same results as above after cancelling the common terms.
Futhermore, feedback() is smart enough to not cancel common pole/zero pairs should there be any in G to begin with.
G = zpk([-1 -4],[-2 -3 -4],1)
Here, the pole/zero at s = -4 is inherent to the system and so remains in H.