I suspect the confusion comes down to variable scope. Something like:
func MyFunc():
var MyVar = 0 #Only available within the scope of MyFunc, so this:
MyVar+=1 # Works.... while this:
MyVar+=1 # Doesn't
I would assume declaring a variable within _ready() does not expose it to any other functions by default, but tbh I've not actually tested it.
As for 'Onready...', this is just a shorthand to keep the _ready() function tidier I think. It does the same task as far as I know so this:
onready var MyVar = 0
func MyFunc():
MyVar+=1
is analogous to this:
var MyVar
func _ready():
MyVar = 0
func MyFunc():
MyVar+=1
Though they perhaps do different things if re-instancing the node, honestly not sure but for the majority of usecases, like for like.