Так с ходу прям не скажу. Очевидно что вместе с методом textFieldDidBeginEditing, TextField вызывает анимацию клавиатуры, а вы в этом методе вызываете setContentOffset(неизвестно как там эта анимация реализована) от чего возникает конфликт, капать нужно в сторону CAAnimation. Если setContentOffset запустить асинхронно то анимация сработает после того как отработает анимация клавиатуры, правильное в данном случае решение, заворачивать setContentOffset в блок animate withDuration и ставить animated: false
UIView.animate(withDuration: 0.3) {
self.scrollView.setContentOffset(CGPoint(x: 0.0, y: 250.0), animated: false)
}
То есть не использовать ту анимацию которая реализована в setContentOffset, смело можно списать на особенности реализации UIScrollView подобное можно также наблюдать в его подклассах UITableView и UICollectionView.