The dust limit is technically not fixed – it varies depending on the type of output. 546 Satoshis are simply the best known for a p2pkh edition. Since this is the longest-lived output type, I suspect that some wallets / blog posts / literature treat it as a hard-coded dust limit.
In order to arrive at 546 Satoshis, we first need to know what "dust" means. Dust emissions are emissions that cost more than they are worth. An X-BTC output costing> X is a dust emission. This is directly proportional to the amount of data required to output an output, since bitcoin fees are commonly referred to as "per byte." The more bytes you need to add to your Tx to output, the higher the dust threshold.
A very simple Tx, consisting of 1 p2pkh input (~ 148 bytes) and 1 p2pkh output (~ 34 bytes), yields 182 bytes. The dust limit is three times this number (assuming a staggering fee of 1 Satoshi) or
182 * 3 = 546 Sats.
For more complex Txs such as p2sh, this number is larger. For less space intensive like the newer Segwit options this number would be lower.