Why use IV like this in TLS 1.2 record layer AES-SHA block cipher? struct {
    opaque IV[SecurityParameters.record_iv_length];
    block-ciphered struct {
        opaque content[TLSCompressed.length];
        opaque MAC[SecurityParameters.mac_length];
        uint8 padding[GenericBlockCipher.padding_length];
        uint8 padding_length;
    };
} GenericBlockCipher;


I quoted above from RFC5246. 
I am curious why do we use IV like that.
Why not derive IV in the key expansion and use it again again?

If we use it like above, the IV will be public to anybody.
Is it right that the recipient should use the IV to decode block-ciphered struct? So IV is not encoded and only block ciphered struct is encoded.
I am curious why do we use IV like that. Why not derive IV in the key expansion and use it again again?


Repeating IVs is bad, both for CBC and GCM.  And, no, keeping the repeated IV secret from the adversary doesn't help.


  If we use it like above, the IV will be public to anybody.


Well, yes.  IVs do not need to be secret; we don't mind if an adversary hears them.


  Is it right that the recipient should use the IV to decode block-ciphered struct?


Yes.  In CBC mode, the IV is directly used as the CBC-mode IV input (effectively, as the "previous ciphertext block" to decrypt the first ciphertext block).  In GCM mode, it is combined with 4 bytes from the key expansion to generate a 12 byte nonce, which is used as the GCM-mode nonce input.