Signing the transaction does zip to block a double-spend without committing it to the ledger. The buyer could walk around town signing dozens of transactions for the same money and only the first seller to submit the transaction gets the money.
There's a similar problem with handing someone the private key to a wallet with a pre-set amount of money as an offline transaction. Besides not being able to verify the amount in the wallet without checking with the central ledger, you also don't know that the other party isn't handing out the same private key to multiple people.
Paper money or even metal money can be counterfeited, sure, but in low-counterfeiting environments individuals transacting can verify the authenticity of the script locally with reasonable confidence, without consulting a (distributed, decentralized) third-party to verify.
There's a similar problem with handing someone the private key to a wallet with a pre-set amount of money as an offline transaction. Besides not being able to verify the amount in the wallet without checking with the central ledger, you also don't know that the other party isn't handing out the same private key to multiple people.
Paper money or even metal money can be counterfeited, sure, but in low-counterfeiting environments individuals transacting can verify the authenticity of the script locally with reasonable confidence, without consulting a (distributed, decentralized) third-party to verify.