How to get a value-only flat array from $wpdb->get_results when selecting a single column, without foreach()?

Yes, there is.

If you want to retrieve just one column from the database table, i.e. all row values for that column, you can use wpdb::get_col().

$values = $wpdb->get_col( "SELECT field FROM {$wpdb->prefix}table" );
foreach ( $values as $value ) {
    // your code
}