main branch has failing test case for tree module

### Describe the bug

The current main branch has a failed test case in the tree module

tests: `sklearn/tree/tests/test_tree.py`

### Steps/Code to Reproduce

```
python -m pytest sklearn/tree/tests/test_tree.py
```

### Expected Results

No failing test cases.

### Actual Results

```python
    def test_poisson_vs_mse():
        # For a Poisson distributed target, Poisson loss should give better results
        # than squared error measured in Poisson deviance as metric.
        # We have a similar test, test_poisson(), in
        # sklearn/ensemble/_hist_gradient_boosting/tests/test_gradient_boosting.py
        rng = np.random.RandomState(42)
        n_train, n_test, n_features = 500, 500, 10
        X = datasets.make_low_rank_matrix(
            n_samples=n_train + n_test, n_features=n_features, random_state=rng
        )
        # We create a log-linear Poisson model and downscale coef as it will get
        # exponentiated.
        coef = rng.uniform(low=-2, high=2, size=n_features) / np.max(X, axis=0)
        y = rng.poisson(lam=np.exp(X @ coef))
        X_train, X_test, y_train, y_test = train_test_split(
            X, y, test_size=n_test, random_state=rng
        )
        # We prevent some overfitting by setting min_samples_split=10.
        tree_poi = DecisionTreeRegressor(
            criterion="poisson", min_samples_split=10, random_state=rng
        )
        tree_mse = DecisionTreeRegressor(
            criterion="squared_error", min_samples_split=10, random_state=rng
        )
    
        tree_poi.fit(X_train, y_train)
        tree_mse.fit(X_train, y_train)
        dummy = DummyRegressor(strategy="mean").fit(X_train, y_train)
    
        for X, y, val in [(X_train, y_train, "train"), (X_test, y_test, "test")]:
            metric_poi = mean_poisson_deviance(y, tree_poi.predict(X))
            # squared_error might produce non-positive predictions => clip
            metric_mse = mean_poisson_deviance(y, np.clip(tree_mse.predict(X), 1e-15, None))
            metric_dummy = mean_poisson_deviance(y, dummy.predict(X))
            # As squared_error might correctly predict 0 in train set, its train
            # score can be better than Poisson. This is no longer the case for the
            # test set.
            if val == "test":
                assert metric_poi < 0.5 * metric_mse
>           assert metric_poi < 0.75 * metric_dummy
E           assert 5.045765011724298 < (0.75 * 5.918121619355619)

sklearn/tree/tests/test_tree.py:2117: AssertionError

```

### Versions

```shell
System:
    python: 3.8.8 (default, Apr 13 2021, 12:59:45)  [Clang 10.0.0 ]
executable: /Users/mac/Documents/GitHub/.ENV/bin/python
   machine: macOS-10.16-x86_64-i386-64bit

Python dependencies:
          pip: 20.2.3
   setuptools: 49.2.1
      sklearn: 1.1.dev0
        numpy: 1.21.2
        scipy: 1.7.1
       Cython: 0.29.24
       pandas: 1.3.3
   matplotlib: 3.5.1
       joblib: 1.1.0
threadpoolctl: 3.0.0

Built with OpenMP: False
```

COMMENT:
ping @ogrisel @lorentzenchr I think this is a test that we tweak recently. Shall make it less flaky by changing the thresholds?

Labels: Bug, module:tree