Why are FIR filters still stable even though they contain poles?
FIR filters contain as many poles as they have zeros.  but all of the poles are located at the origin, $z=0$.

because all of the poles are located inside the unit circle, the FIR filter is ostensibly stable.

this is probably not the FIR filter the OP is thinking about, but there is a class of FIR filters called Truncated IIR filters (TIIR) which may have a pole on or outside the unit circle that is canceled by a zero at the same location.  the simplest example of this is the moving sum or moving average filter.  but, from an I/O perspective, these TIIR filters are FIR.

but i wouldn't naively guarantee "stability".  using control-system language, the TIIR filter are not "completely observable" and may appear stable because its impulse response appears finite in length, but inside the filter states could be going to hell, and with finite numerical precision, that internal instability will eventually show up at the output.

we have to disabuse ourselves from the notion that "FIR filters have no poles".  ain't true.