A salt is a non-secret, random value that’s used to ensure that the same plaintext will not consistently hash to the same output value; it’s used to prevent precomputation attacks such as Rainbow Tables.
A nonce (“number used once”) is a – typically randomly generated – value that’s associated with a message in a cryptographic scheme, and must be unique within some specified scope (such as a given time interval, or a session). It’s typically used to prevent replay attacks.
Nonces and salts are similar and serve related purposes, but aren’t identical. Both are typically randomly generated, not secret, and serve to prevent attacks that would otherwise be possible against the system. They differ mainly in the context in which they’re used, and in the consequences of repeats – a duplicate salt is unimportant, but a duplicate nonce can have dire consequences.