When an arbitrary precision number is entered with a backtick, the decimal mantissa/significand is used, so what effectively happens is
SetPrecision[1*10^-1, 22]
On the other hand, as documented SetPrecision[0.1, 22] takes the machine precision number 0.1 and pads it with binary zeros. In base 10, the added padding digits will not be zero in general. Try comparing the results of RealDigits in base 2 and base 10 for 0.1, 0.1`22 and SetPrecision[0.1, 22].
Thanks for the helpful reply. To make sure I understand, when using SetPrecision, the 0.1 is converted to binary, which must be an approximation since 0.1 is not terminating in binary, and then padded with 0’s to achieve the desired base 10 precision. It seems that padding with 0’s is not causing the difference but rather the conversion to binary. Is that right?