In OpenSSL output there are much more parameters and bit string. It seems like in OpenSSL version all this parameters described by curve type are provided but why? If we know curve type we know this parameters so the only thing output must provide is curve type (second Object ID).
You are not using named curves. To use a named curve, you need to set the OPENSSL_EC_NAMED_CURVE
flag:
EC_KEY* key = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
EC_KEY_set_asn1_flag(key, OPENSSL_EC_NAMED_CURVE);
That will use a named curve like ASN1 OID: prime256v1
rather than domain parameters.
See ECDH and Named Curves for a more detailed discussion.