after hard fork won't every new transaction go on both chains? I don't understand why I'm reading that after a hard fork, the existing transactions would be on both chains but the new transactions will only be on one or the other (resulting in 2 different chains, thus an altcoin).  Won't even new transactions eventually end up on both chains?

Transactions don't care about block size, so both versions should accept them.  Even if one chain has already included it, software for the 2nd chain won't care about the first chain, so the 2nd should still have those transactions in its pool, resulting in it being put into the 2nd chain as well.

I don't see how this will result in 2 separate chains... it seems like both chains will always have approximately the same exact transactions, just possibly in a different order and grouped into different blocks.

The only exception to this I can think of is if a double-spend is attempted.  Then it's possible that one of the chains will accept one of the double-spend transactions and the other chain will accept the other.

But otherwise, I don't see how there would be a difference.
This actually happened on Ethereum when they had a hard fork.  If a transaction is valid on both chains (spends outputs from before the fork), and gets propagated to both chains, then yes, there is no reason it won't be added to blocks on both chains.

However, there are still two chains.  When the same transaction gets added to both chains, they are included in two separate blocks; one block from chain A and one block from chain B.  The outputs of such transactions can only be spent on their corresponding chain, even though the transaction that created them was identical.

Lets say that we have a chain that hard forks at block height 100.  We now have chain A and chain B.  A transaction is created using UTXOs from the block at height 90, and propagates on both networks.  Chain A includes it in its block at height 108, and chain B includes it in its block at height 110 (although it could just as well be 108 on its chain too).  Now a new transaction is created spending a UTXO from the first transaction on chain A.  That second transaction can only ever propagate on chain B if it exclusively spends from UTXOs on both chains.  This becomes increasingly less likely over time.

Since most new transactions on a chain are only valid for that chain, it won't take long before the two chains have barely any transactions in common.

It's also important to note that bitcoin clients will drop connections to clients that propagate blocks from the other chain.  This will help to segregate the network, and prevent transactions from propagating on both chains, even when they are valid on both.  There could be malicious entities that "bridge" the two networks, looking for transactions that are valid on both, but there isn't any real incentive for that sort of misbehavior.