As per my knowledge if we use secondary server (logshipping configured DB) for read-only purpose then it needs license.
Yes correct, if you are running any type of query on sql server machine it has to be fully licensed.
And if we made logshipping database in 'Recovery mode' then is it free of license?
This looks more correct approach. If you do not want to pay license for secondary database better keep it in recovery model.
PS: Please note for you to have ability to run secondary server for LS in recovery mode and not pay license you need to purchase software assurance( SA). Without SA you would not get the benefit of running secondary server in recovery mode without paying for license. SA does not costs too much.