Returning One custom taxonomy term name

You are fetching all the terms of your taxonomy, Use this instead :

 $terms = wp_get_post_terms(get_the_ID(), 'city-type');
  if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
     foreach ( $terms as $term ) {
       echo '<span>' . $term->name . '</span>';      
     }
  }

Note : First argument to the function is id of the post, get_the_ID() will work fine on single post details page and within loops. Function reference on WordPress