'Fair' means pretty, nice to look at. You could have said 'my pretty lady', but it wouldn't have kept the beat of the song.
Just a little history - 'fair' originally referred to a woman whose face was not scarred with smallpox. Later, it came to mean pretty. Some words change their meaning over centuries.