I want to get term by term_name without taxonomy

The get_term() function does not accept a string or array; it only accepts an ID, a stdClass object or a WP_Term object. So I think you’re headed in the right direction using $wpdb. But the SQL query can’t accept a PHP array. So try this:

$term_names = ['red','blue'];
$term_names_str = implode(', ', $term_names);
$term_datas = $wpdb->get_results( $wpdb->prepare( 
  "SELECT * FROM $wpdb->terms WHERE name IN ($term_names_str)"
) );
var_dump($term_datas);

Note, you were using the get_row method, which would only retrieve one result; get_results will retrieve all results rows matching the query.