MATLAB appears to be applying my filter to the spectrum twice, once on each side
Your filter has a real-valued impulse response, which means it has a two-sided spectrum.  Your filter is only applied once, but that application changes both positive and negative frequencies: -0.3739 to -0.18 and from 0.18 to 0.3729 (modulo the transition region of the filter).  If the filter did not do this, you would have a low pass filter and not a bandpass filter.