Lerp is teleporting my object but not moving slowly

my code:

void OnMouseDown () {
		count++;
			audio.Play ();

		if (isRes) {
	
			if(count%2 ==0){
				//ResBoard.transform.position = new Vector3(0f, 3.5f, 0f);
				StartCoroutine(Move (ResBoard.transform, 6,3.5f,0.5f));
			} else {
				StartCoroutine(Move (ResBoard.transform, 3.5f,6,0.5f));
				//ResBoard.transform.position = new Vector3(0f, 7f, 0f);
			}

		} 
		if (isClose) {
			StartCoroutine(Move (ResBoard.transform, 3.5f,6f,0.5f));
			//ResBoard.transform.position = new Vector3(0f, 7f, 0f);

		}
	}


	IEnumerator Move(Transform thisTransform,float start, float pos, float time){
		float i= 0.0f;
		float rate= 1.0f/time;
		
		while (i < 1.0f) {
			i += Time.deltaTime * rate;
				thisTransform.position = Vector3.Lerp(new Vector3(0f,start,0f), new Vector3(0f,pos,0f), i);
				
			}
			yield return null; 
		}

i don’t know what is wrong with this, on another scene it still works fine

Try to move your yield inside your while loop