How to display data from custom fields in my custom shortcode?

You simply need to query your custom fields and return them with your shortcode:

// EXAMPLE USAGE:
// [loop the_query="showposts=100&post_type=page&post_parent=453"]
function custom_query_shortcode($atts) {
    // Defaults
    extract(shortcode_atts(array(
      "the_query" => ''
    ), $atts));

    // de-funkify query
    $the_query = preg_replace('~&#x0*([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $the_query);
    $the_query = preg_replace('~&#0*([0-9]+);~e', 'chr(\\1)', $the_query);

    // query is made               
    query_posts($the_query);

    // Reset and setup variables
    $output="";
    $temp_title="";
    $temp_link = '';

    // the loop
    if (have_posts()){
        while (have_posts()){
            the_post();
            $temp_title = get_the_title($post->ID);
            $temp_link = get_permalink($post->ID);
            //get you custom fields
            $duration = get_post_meta( $post->ID, 'duration', true );
            $other_custom_field = get_post_meta( $post->ID, 'other_custom_field_key', true );
            //add the custom field to the output var
            $output .= "<li><a href="https://wordpress.stackexchange.com/questions/139230/$temp_link">$temp_title</a> Duration: $duration, Other: $other_custom_field</li>";
        }
    }else{
        $output .= "nothing found.";
    }
    wp_reset_query();
    return $output;
}
add_shortcode("loop", "custom_query_shortcode");