text: Title: Validator is not used when passed to `create_model` and having the same name as a field
  Body: ### Initial Checks
  
  - [X] I confirm that I'm using Pydantic V2
  
  ### Description
  
  Hi!
  I noticed that the validator is not used and called if it has the same name as the field (or some other limitations, I'm not sure)
  I guess a warning or a error would be really useful. Or at least something specified in docs about this
  
  ### Example Code
  
  ```Python
  from pydantic import create_model, field_validator
  
  def bar(cls, v):
      print("bar_called", v)
      return v
  
  validator = field_validator("bar", mode="before")(bar)
  
  # OPTION1: validator is not called
  validators = {"bar": validator}
  
  # OPTION2: validator is called
  # validators = {"bar_validator": validator}
  
  Foo = create_model("Foo", bar=(str, ...), __validators__=validators)
  foo = Foo(bar="bar")
  ```
  
  
  ### Python, Pydantic & OS Version
  
  ```Text
  pydantic version: 2.9.2
          pydantic-core version: 2.23.4
            pydantic-core build: profile=release pgo=false
                   install path: D:\project\.venv\Lib\site-packages\pydantic
                 python version: 3.12.3 (tags/v3.12.3:f6650f9, Apr  9 2024, 14:05:25) [MSC v.1938 64 bit (AMD64)]
                       platform: Windows-10-10.0.19045-SP0
               related packages: fastapi-0.112.1 mypy-1.11.1 pydantic-settings-2.4.0 typing_extensions-4.12.2
                         commit: unknown
  ```
  