Token spending approval: difference between signing a message and signing a transaction

Hello,
using DeFi (mainly on L2 like Base but I assume it's the same on Ethereum), I noticed some protocols allow me to only "sign" a message (with no cost) to allow spending a token, while other require to sign a transaction (that has gas fees).
Could anyone explain the difference between those two spending approval? Why one or another?
submitted by /u/TheCryptoDong
[link] [comments]