I think Arthur knew, at the end. That he loved Merlin. I think he spent years denying it, to himself more than anyone. And I think he never accepted it because he knew Merlin better than anyone even without the magic. He knew there was something missing. And how can you love someone like that when you know there’s a piece of them you haven’t figured out HOW to love?
And then he found out Merlin was a sorcerer. And I think it clicked in his head, then, that “oh. That was it. That was the piece that was missing, and I do love you. I love you anyway.” And I think he thought about saying it, right then, but knew he was going to die and didn’t want to do that to Merlin. So instead, he said “hold me” and swore to whatever heavens would listen that he’d find a way to tell him someday.