Is there any analog of GameObject.Find() function?

There are a couple of other ways, but all are similar. For example you ca use a tag and use GameObject.FindWithTag(). But typically what you want to do is to cache the Find() for future use:

private var player : Transform;

function Start() {
    player = GameObject.Find("Player").transform;
}

Then anytime in the rest of the code you want to set the position, you would do:

player.position = Vector3(3,0,0);

You can also use drag and drop. That is if you have a public variable:

var player : Transform;

or in C#:

public Transform player;

Then you can drag and drop the player game object on the ‘player’ variable in the Inspector to form a link.

GameObject.Find() is not very efficient, so you want to avoid calling it every frame.

There are many ways to locate and manipulate game objects.

GameObject.Find(string name)

FindObjectOfType()

FindGameObjectWithTag(string tag)

Transform.Find(string name)

and many more!

You can also declare a public GameObject at the top of your script, and then assign it in the Editor with drag-and-drop.