How to display a custom taxonomy without a link?

You can get the raw list of terms attached to a post with the get_the_terms() function. You can then use this to output their names without a link:

$my_categories = get_the_terms( null, 'my_category' );

if ( is_array( $my_categories ) ) {
    foreach ( $my_categories as $my_category ) {
        echo $my_category->name;
    }
}

To account for the possibility of multiple terms, you probably want to output the list of names separated by commas, in which case you could put the names into an array and implode() them:

$my_categories  = get_the_terms( null, 'my_category' );

if ( is_array( $my_categories ) ) {
    $category_names = wp_list_pluck( $my_categories, 'name' );

    echo implode( ', ', $category_names );
}

I’ll leave the above, even though it turns out it’s not relevant to OP, because it’s still the correct answer to the original question as it appeared.

In regards to the updated question, if you want to output the name of a term given a specific slug, you need to retrieve that term with get_term_by() and then output it by echoing the name property of the resulting object.

<?php 

$args = array(
    'post_type' => 'my_post_type',
    'tax_query' => array(
         array(
            'taxonomy' => 'my_category',
            'field'    => 'slug',
            'terms'    => 'my_term',
         ),
    ),
);

$my_query = new WP_Query( $args );

$term = get_term_by( 'slug', 'my_term', 'my_category' );
?> 

<div>

    <h2><?php echo $term->name; ?></h2>

</div>