Traditional currencies have anti-counterfeiting features designed to make them hard to copy, but despite this attempt counterfeit money is a real threat. Since bitcoins are digital, it's trivial to copy them. Does this mean that bitcoins can be counterfeited?
There is no such thing as a "bitcoin" that can be copied. Rather, there is a list of all the transactions that have taken place on the bitcoin network and the order they have taken place. Every client has a copy of this list. Essentially, the only way to counterfeit bitcoins would be to spend them in more than one place. This is called a double-spend attack. However, because of the design of the bitcoin block chain (the list of all the transactions) and the way that list is secured by mining, this requires a tremendous amount of computer power.
See also the question about how mining works
As others have said "copying a bitcoin" is trivial but of no value.
Your wallet consists of addresses and each of those addresses has a certain value.
When your wallet says you have "20 bitcoins" it simply an abstraction. Currently your wallet file consists of multiple addresses and the combined value of those addresses according to the bitcoin block chain is 20 bitcoins.
When you transfer bitcoins to someone you don't hand over "a bitcoin". You submit a transaction to the network. The network makes sure your address is valid and has the proper value. So there is no risk of counterfeiting because there is nothing to counterfeit.
There is a risk of double spending. When I transfer bitcoins from me to you the network prevents me from doing it again (and again and again ...). When you submit a a transaction the network verifies that each transaction is valid before including it in the next block.
IF hypothetically you had enough computing power you could cheat. You could include your invalid transaction in the block and sign it as valid. The strength of bitcoin comes from the size of the network. Currently ~17Thash/second. An insane amount of computation power. As long as the network remains large enough and diverse enough that one entity can't control 51% there is very little risk of double spending, so long as the recipient waits for a confirmation.
A Bitcoin must, by definition, be an entry in a valid Bitcoin public block chain. The block chain rules allow each Bitcoin to be present only once in a block chain, or else that block chain is not valid.
Think of the Bitcoin block chain like a ledger listing every Bitcoin's origin and present location. If you make a copy of the same Bitcoin, the ledger isn't valid. Invalid ledgers are ignored by all Bitcoin users.
So, if you copied a Bitcoin, you could show one copy to each of two users. But then they'd just both know you have a Bitcoin, which is true, so no harm done. You can't show both Bitcoins to the same person, because it would be obvious they are identical. And you can't transfer one of them to Fred and one of them to Abel, because there's only one public blockchain for transfers and the same Bitcoin may not appear in it twice (other than once as an output and once as an input).
There is a period of time before a transaction has fully confirmed where a tactic similar to counterfeiting could be successful.
A race attack is one -- where at the time of purchase two transactions using the same bitcoin are sent. The first spend transaction is sent to an address the attacker controls, but is announced only to nodes of miners. At about the same time (milliseconds) a second spend attempt is sent to the merchant's bitcoin address and is announced to a wide number of nodes. The hope by the attacker is that the second transaction beats the first in getting relayed to the merchant's node. When that happens, the merchant accepting on 0/unconfirmed will deem payment as received but the transaction will never confirm later as the mining nodes that saw the first transaction will have rejected it and instead will confirm the first spend.
There have been no claims published as to how successful this race attack would be and no reports of merchants getting defrauded from it but few merchants accept 0/unconfirmed thus far.
In a way then, the second spend was an attempt to perform a counterfeit bitcoin transaction, and there is some (well above zero) likelihood of it being technically successful.
The Finney attack is another method to attempt a counterfeit against a 0/unconfirmed. - https://en.bitcoin.it/wiki/Weaknesses#The_.22Finney.22_attack
And, if the merchant doesn't take precautions, there is a variation on the Finney attack where even a 1/unconfirmed can be a counterfeit: - http://bitcointalk.org/index.php?topic=36788.msg463391#msg463391
You can not copy bitcoins because there is nothing there copy. A bitcoin is not a file nor an object. It is a simple number associated with an address. The blockchain dictates which addresses contain which coins.
Note that this doesn't apply to physical objects that represent bitcoins, such as bitbills. You can try to recreate a bitbill just like you can try to recreate a dollar bill. The security measures employed by the bitbills' manufacturer have nothing to do with Bitcoins.
Bitcoins can be "counterfeited" if an impostor coin is misrepresented to be the real thing. In addition to what is listed here:
Test network coins may be forged and offered as production network coins
A local instance of the Bitcoin network can be created, and as long as it doesn't communicate with the rest of the world, the coins will last in isolation in that private bitcoin network.