Насколько я понял shim это общий термин в программировании, абстракция-перехватчик над api, между отправителем и получателем. Соответственно может происходить что угодно. Polyfill это shim в браузерном javascript, который имитирует отсутствующий api из более современных реализаций языка.