For anything like this, it's always best to refer to the original documentation... which exists on Uniswap site. PancakeSwap didn't seem bothered about copying the actual documentation, unlike everything else the copied... :-)
For swapExactTokensForTokensSupportingFeeOnTransferTokens
the Uniswap docs are here:
Identical to swapExactTokensForTokens, but succeeds for tokens that
take a fee on transfer.
So this family of functions should be used for tokens that take a fee (i.e. any tokens using reflection, e.g. RFI).
I believe when you attempt to use the vanilla functions with reflexive tokens, the swap will fail due to the fee changing the resultant amountIn
value.