get_post_meta not working inside loop

There is nothing ‘improper’ about the second block of code. Its just written for debugging purposes. The key difference is that that second block used get_the_ID(). Try that.

add_action ('genesis_before_post_content', 'gteh_tagline');
function gteh_tagline() {
    $meta = get_post_meta(get_the_ID(), $field['dbt_text'], true);
    echo $meta;
}

Or try to pull in $post with global.

add_action ('genesis_before_post_content', 'gteh_tagline');
function gteh_tagline() {
    global $post;
    $meta = get_post_meta($post->ID, $field['dbt_text'], true);
    echo $meta;
}

Or, depending on how that action is written, this might work.

add_action ('genesis_before_post_content', 'gteh_tagline');
function gteh_tagline($post) {
    $meta = get_post_meta($post->ID, $field['dbt_text'], true);
    echo $meta;
}