text: Title: dvc exp run (or dvc repro) in monorepo: inefficient crawling
  Body: # Bug Report
  
  <!--
  ## Issue name
  
  Issue names must follow the pattern `command: description` where the command is the dvc command that you are trying to run. The description should describe the consequence of the bug.
  
  Example: `repro: doesn't detect input changes`
  -->
  
  ## Description
  
  In a monorepo scenario with a `.dvc` directory at the root of te monorepo and multiple subdirectory projects (each with their own `dvc.yaml` file), `dvc repro` seems to be checking the entire monorepo even when explicitly given a `dvc.yaml` file from a subdirectory (and even when run from that subdirectory). I am not sure why it does that but with a particularly large monorepo this can slow things down considerably. For example, with the example repo below when set to 1000 projects this increases the time to run simple experiments from about 2 seconds to about 24 seconds (1000 projects is a lot but they are very simple and their directory structure is also).
  
  Even if the other directories don't have a `dvc.yaml` file in them at all, `dvc repro` is still trying to collect stages from there (whereas I would expect it not to even look outside of the PWD).
  
  With `dvc exp run` the pattern is the same, only a bit more is going on there since the command does more than just `dvc repro`
  
  <!--
  A clear and concise description of what the bug is.
  -->
  
  ### Reproduce
  
  There is a testing repo [here](https://github.com/iterative/monorepo-dvc-repro) with instructions on how to test this and reproduce the issue in the [README](https://github.com/iterative/monorepo-dvc-repro/blob/main/README.md).
  
  <!--
  Step list of how to reproduce the bug
  -->
  
  <!--
  Example:
  
  1. dvc init
  2. Copy dataset.zip to the directory
  3. dvc add dataset.zip
  4. dvc run -d dataset.zip -o model ./train.sh
  5. modify dataset.zip
  6. dvc repro
  -->
  
  ### Expected
  
  I would be expecting `dvc repro` to only scan the PWD of the `dvc.yaml` file (and its subdirectories) and not go through the entire directory tree. The same for `dvc exp run`.
  
  <!--
  A clear and concise description of what you expect to happen.
  -->
  
  **Additional Information (if any):**
  
  Here are some logs that I generated with verbose runs of `dvc repro` and `dvc exp`. The first two are outputs when this is run from a single project in a monorepo with 5 projects in total (all of them with their own `dvc.yaml`). The last one is run in a monorepo with 2 projects, one of which does not contain any `dvc.yaml` file at all
  
  [dvc_repro.log](https://github.com/iterative/dvc/files/15040741/dvc_repro.log)
  [dvc_exp_run.log](https://github.com/iterative/dvc/files/15040743/dvc_exp_run.log)
  [dvc_exp_run_projects_wo_dvc.log](https://github.com/iterative/dvc/files/15040742/dvc_exp_run_projects_wo_dvc.log)
  
  <!--
  Please check https://github.com/iterative/dvc/wiki/Debugging-DVC on ways to gather more information regarding the issue.
  
  If applicable, please also provide a `--verbose` output of the command, eg: `dvc add --verbose`.
  If the issue is regarding the performance, please attach the profiling information and the benchmark comparisons.
  -->
  