If we access the object only once, there will not be any difference in the performance. Maybe we’ll never have need the object. In that case, calling the Find method would be a waste of resources.
You are right. That would be more performant.
Unfortunately, it is not always possible to assign the reference manually. For instance, if you instantiate an enemy during runtime, it might be that the enemy depends on something in the scene. In that case, the enemy object would have to look for an object during runtime.
Another example would be: Imagine you had lots of different objects, and they all needed a reference. It sometimes could make sense to call FindObjectOfType to avoid missing something.
As you can probably see, it depends. There is no universal answer, so you’ll have to make your own decisions depending on the actual situation in your game.